集成算法--stacking
stacking是什么
stacking是各类算法模型的融合堆叠。假设有四种算法A、B、C、D, 你用A、B、C三种算法,分为对训练集和测试集训练,生成三组被预测了的新的train和test集,然后在用算法D对其训练,最终生成最终的结果。- 细解流程:如何生成新的预测了的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.待更新