Stacking指(1)将不同种类的超参数相结合来构建不同的机器学习模型,使其具有更为卓越的技术性能,从而获得更佳的预测结果。在机器学习中,有时候在模型上串联更多的层会带来更广泛的成果。这种技术被称为stacking。
(2)在实际使用中,stacking会将模型前面的几个算法,作为“层”,组合到不同的输入数据,每一层都能预测出一个结果,并将这些结果叠加起来组合成一个综合的结果。
(3)stacking的搭建步骤一般分为四步:
(a)第一步,对训练数据进行特征抽取和复杂划分,比如生成多个候选集来表达不同的特征,例如比较一组数据和另一组数据的差异。
(b)第二步,在各自候选集上拟合独立模型并获得每个候选集的分数,这些分数将作为下一步的输入,以便联合不同候选集的信息。
(c)第三步,将模型拼接成stacking,即给每个候选集的模型输入其他的层的输出,并建立一个综合的投票结果。
(d)第四步,训练stacking模型,得出最终的模型。
(4)优势:stacking有效利用了不同模型之间的相互协调作用,从而更好地捕获样本数据的局部细节特征,从而产生更具表现力的模型,比单个模型要准确。
(5)缺点:由于stacking模型拼装和融合复杂,受其模型算法选择和模型融合调参的影响较大,因此可能受到某些特定参数的影响而被严重过优化,最终的模型泛化效果不佳。
一、定义stacking:
Stacking是一种机器学习技术,是用多个学习器层叠起来形成一个强大的模型,用来优化建模过程。它是一种集成学习方法,通过收集多个学习器的结果,用于拟合未知的输入到一个输出。传统的集成学习方法(如Bagging和Boosting)也被称为堆积法。
二、构成:
Stacking由两个主要部分组成:基础学习器和汇总学习器,两者都可以使用机器学习技术实现。基础学习器按照预定义策略进行学习,接着将结果提供给汇总学习器,以此组成Stacking模型。
三、原理:
Stacking的基本原理是,将数据划分为训练集和测试集,使用基础学习器对训练集进行学习,并生成对测试集的预测结果,然后使用汇总学习器将这些预测结果进行汇总,以此来获得最好的未知输入到输出映射模型,即stacking模型。
四、优点:
(1)堆叠法可以提高模型的预测精度,比传统机器学习模型如SVM、决策树等效果更好;
(2)具有较好的泛化能力,可以避免过拟合现象;
(3)可以采用不同的算法搭配使用,可以有效地提高模型的复杂度,减少模型的偏差;
(4)可以合理选择多个弱学习模型,比一个单独的强学习模型提供更好的学习性能和更高的精度;
(5)可以选择目标变量和非目标变量,更全面的对目标分析问题进行研究。
五、缺点:
(1)计算复杂度较大,需要额外的计算资源;
(2)可能出现模型嵌套形成单调变量,从而影响模型精度;
(3)模型的拟合能力受到基学习器的限制,只能学习较少的抽象层次;
(4)容易受到学习器的噪声影响,数据样本量要求较大。