13-7stacking算法没理解清楚
来源:13-7 Stacking
烈焰卡卡
2018-03-20
stacking算法先用subset1数据集训练了3个模型,此时3个模型对subset2数据集预测出了3个结果集。这时候是如何用subset2数据集再进行一个上层模型的训练呢?此时有3个底层模型预测出来的结果集,而subset2是一组数据集,这3个结果集是如何对应一组数据集进行集成训练处一个模型?
写回答
1回答
-
首先,stacking 算法先用 subset1 数据集训练了 3 个模型;
之后,我们用我们训练出的这 3 个模型,对 subset2 数据集中的每一个数据进行预测。这样,对于 subset2 数据集中的每一条数据,我们都产生了 3 个结果。同时,subset2 数据集是包含 y 值的。这样,我们就可以使用 subset1 训练出的三个模型,将 subset2 这个数据集,转换成一个 3 维数据集!这一步应该是理解stacking 的关键。也就是我们新的数据集的特征数量,和原先数据集的特征数量无关,和我们的 stacking 中第一层集合了多少学习算法相关!
有了这个 3 维数据集,以及 subset2 中每条数据对应的 y 值,这些数据,形成了一个新的监督学习数据集。用于我在课程中下图里,训练 blending 这个模型所使用的数据集。
希望上面我用文字解释清楚了blending这个模型的训练方法:)其实理解了这个过程,编写一个stacking并不难。只是已知算法的组合而已,没有学习算法内部的任何新的东西。
如果你搞懂了这个过程,思考一下。我在课程中曾经说过,如果我们要三层stacking(下图所示),就需要把原始的训练数据集分成三份。这三份数据集应该怎么用?:)
加油!
432018-03-21
相似问题