task 11 集成学习

Stacking相比Linear Blending来说,更加强大,然而也更容易过拟合。

Stacking做法和Linear Blending类似,首先从数据集中训练出初级学习器,然后”生成“一个新的数据集用于训练次级学习器。为了防止过拟合,采用K折交叉验证法求解。

假设采用5折交叉验证,每个模型都要做满5次训练和预测,对于每一次:

从80%的数据训练得到一个模型ht,然后预测训练集剩下的那20%,同时也要预测测试集。
每次有20%的训练数据被预测,5次后正好每个训练样本都被预测过了。
每次都要预测测试集,因此最后测试集被预测5次,最终结果取5次的平均。
如果是分类问题,我们对测试集的结果就不能像回归问题一样直接取平均,而是分类器输出所有类别的概率,最后取平均。每个分类器都贡献了_N_CLASS(类别数)的维度。

由于sklearn并没有直接对Stacking的方法,因此我们需要下载mlxtend工具包(pip install mlxtend)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容