
这个问题我也找了很久,最开始我是在林轩田老师的《机器学习技法》这门课的blending部分看到的这两个概念。在blending部分,林老师把stacking也归为其中的一部分,作为“any blending”的方法——即非线性的融合决策。所以在这门课里本质上这都是一个方法,统称为blending。
当然,既然我们要了解集成的方法,肯定出于实用的价值,所以基本都是想用,网上目前看到的就是blending就是直接把训练集分成两部分进行,一步第一阶段个体学习器的训练,然后另一部分在第一部分的预测结果组成新的训练集输入到第二部的模型中,进行最终的预测。
stacking则是采用K折的方法,K-1个部分进行训练,第K个部分进行单纯的预测并将第一部分的输出,输入到第二部分的模型中,因为有K折所以K个模型的输出刚好覆盖了整个训练集,这样子集体训练第二阶段的模型。这个网上都有图示。(临睡前我就不粘了)
说的这两种方法都有道理,但本质上网上说的都是林老师讲的blending,我现在的理解是第二阶段的融合模型是线性的就是一般的线性blending,非线性的就是stacking。
至于要分训练集再分步训练的原因就是,怕过拟合,而且时间复杂度比较高。
最后,希望对你有用,我再研究下,有好的发现再来补坑。
