集成算法stacking

集成算法--stacking##

  1. stacking是什么
    stacking是各类算法模型的融合堆叠。假设有四种算法A、B、C、D, 你用A、B、C三种算法,分为对训练集和测试集训练,生成三组被预测了的新的train和test集,然后在用算法D对其训练,最终生成最终的结果。

  2. 细解流程:如何生成新的预测了的pred_train。

  • ①以算法A为例,此时加载了数据,训练集train和测试集test。先对训练集train进行五折交叉,生成五组 train_part和valid验证集,且保证valid集的index不重合
  • ②对每组的train_part进行训练,然后预测valid,生成pred_valid,五组验证完后,正好五个pred_valid对应train中所有数据的预测值,五个pred_valid合并后即pred_train_A
  • ③而在对每组train_part训练的过程中,生成的模型,不仅对valid进行预测,同时也对test进行预测,生成五组pred_mid_test, 因为test并没有分成五份,所以对五组pred_mid_test取中位数,生成最终的pred_test_A
  • ④ 同样对算法B、C重复以上步骤1,2,3, 生成pred_train_B, pred_test_B, pred_train_C, pred_test_C
  • ⑤ 最后将pred_train_A, pred_train_B, pred_train_C组成新的一个三列的train_DataFrame,三个test则再组成一个新的test_DataFrame,然后用算法D来训练和生成最终的结果

3.图解:
1.暂时没找到

  1. 其他可读文章
    1.待更新
原文地址:https://www.cnblogs.com/bellumpara/p/7502603.html