【datawhale-集成学习】task13 Stacking集成学习算法

Blending在集成的过程中只会用到validation set的数据,对数据实际上是一个很大的浪费。(stacking就是对这个问题的改进?)

Blending vs. Stacking
Blending 优点:

  • 比stacking简单(不用k-fold cross validation来获得stacker feature)
    Blending 缺点
  • 使用了很少的数据(划分hold-out作为测试集,并非cv)
  • blender可能会过拟合(其实大概率是第一点导致的)
  • stacking使用多次的CV会比较稳健

相比于Bagging与Boosting的集成方式,Blending和Stacking的方式更加简单和直观,且效果还很好。

它(Stacking)可以帮你打败当前学术界性能最好的算法
啊真的吗,我要试试,试试就试试

【datawhale-集成学习】task13 Stacking集成学习算法_第1张图片

  1. 将所有data set分成 training set和testing set(training 10,000行,testing 2,500行)。training的10,000进行5-fold cross validation – 用 8,000 做training,2,000做validation。
  2. 每次验证 – 用 8,000 train一个模型,用这个模型对valination的2,000条数据进行验证(得到2,000条数据),对testing进行预测(得到2,500条数据)。重复经过5次交叉检验(得到每次52,000条验证集的结果???蛤??52,500条测试集的预测结果???
  3. 将validation得到的 520 条预测结果拼接称 100 行长的矩阵 sorry, I’m lost

【datawhale-集成学习】task13 Stacking集成学习算法_第2张图片
sklearn没有直接stacking的方法,于是要 pip mlxtend包
在这里插入图片描述


【datawhale-集成学习】task13 Stacking集成学习算法_第3张图片
【datawhale-集成学习】task13 Stacking集成学习算法_第4张图片

【datawhale-集成学习】task13 Stacking集成学习算法_第5张图片
【datawhale-集成学习】task13 Stacking集成学习算法_第6张图片
【datawhale-集成学习】task13 Stacking集成学习算法_第7张图片

你可能感兴趣的:(DataWhale学习笔记,机器学习,python)