集成学习总结(Ensemble Learning)

集成学<1111111span class='tip' style='color:orange'><11111span class='tip' style='color:orange'><111span class='tip' style='color:orange'>习总<111/span><11111/span><1111111/span>结(Ensemble Learning)

Ensemble Learning 是指将多个不同的 Base Model 组合成一个 Ensemble Model 的方法。它可以同时降低最终模型的 Bias 和 Variance,从而在提高分数的同时又降低 Overfitting 的风险。在现在的 Kaggle 比赛中要不用 Ensemble 就拿到奖金几乎是不可能的。

常见的 Ensemble 方法有这么几种:

Bagging:使用训练数据的不同随机子集来训练每个 Base Model,最后进行每个 Base Model 权重相同的 Vote。也即 Random Forest 的原理。

Boosting:迭代地训练 Base Model,每次根据上一个迭代中预测错误的情况修改训练样本的权重。也即 Gradient Boosting 的原理。比 Bagging 效果好,但更容易 Overfit。

Blending:用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

Stacking:接下来会详细介绍。

从理论上讲,Ensemble 要成功,有两个要素:

Base Model 之间的相关性要尽可能的小。这就是为什么非 Tree-based Model 往往表现不是最好但还是要将它们包括在 Ensemble 里面的原因。Ensemble 的 Diversity 越大,最终 Model 的 Bias 就越低。

Base Model 之间的性能表现不能差距太大。这其实是一个 Trade-off,在实际中很有可能表现相近的 Model 只有寥寥几个而且它们之间相关性还不低。但是实践告诉我们即使在这种情况下 Ensemble 还是能大幅提高成绩。

Tree Ensemble methods

回归树集成

预测值为各个树的分数之和

GBM, random forest

Boosting

Boosting:迭代地训练 Base Model,每次根据上一个迭代中预测错误的情况修改训练样本的权重。也即 Gradient Boosting 的原理。比 Bagging 效果好,但更容易 Overfit。

这是一种个体学习器之间存在强依赖关系,必须串行生成的序列化方法。

下面是几个常用的Boosting工具

集成学<1111111span class='tip' style='color:orange'><11111span class='tip' style='color:orange'><111span class='tip' style='color:orange'>习总<111/span><11111/span><1111111/span>结(Ensemble Learning)

AdaBoost

boosting组合-GDBT:精益求精

从理论上讲,Ensemble 要成功,有两个要素:

Base Model 之间的相关性要尽可能的小。这就是为什么非 Tree-based Model 往往表现不是最好但还是要将它们包括在 Ensemble 里面的原因。Ensemble 的 Diversity 越大,最终 Model 的 Bias 就越低。

Base Model 之间的性能表现不能差距太大。这其实是一个 Trade-off,在实际中很有可能表现相近的 Model 只有寥寥几个而且它们之间相关性还不低。但是实践告诉我们即使在这种情况下 Ensemble 还是能大幅提高成绩。

Bagging

Bagging:使用训练数据的不同随机子集来训练每个 Base Model,最后进行每个 Base Model 权重相同的 Vote。也即 Random Forest 的原理。

这是一种个体学习器之间不存在强依赖关系,可同时生成的并行化方法

Blending

Blending:用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

集成主要思路

平均法

投票法

学习法:Stacking


https://www.toutiao.com/a6722298477562298893/

请使用浏览器的分享功能分享到微信等