数据挖掘-Blending策略简介
浅谈Blending方法
在上一篇文章里,介绍了一个融合学习的方法,也就是Stacking方法,本次文章将会介绍一个在实战里很广泛实用的策略,就是Blending方法,翻译过来是混合策略,它的思路有点类似Stacking,都是利用之前模型训练并预测的结果作为当前模型的输入,但是Blending方法的处理思路和步骤相对于Stacking来说更为简单一些。
对于融合学习的策略来说,Bagging的策略属于并行的投票形式,使用者需要保证如何进行voting从而得到最为公平的投票形式,并且最利于当前数据的预测。而Boosting的策略是属于串行的学习模式,使用者需要保证下一个模型如何利用之前模型的错误和经验,并且如何调整预测错误的数据的权重。对于Stacking策略和Blending策略来说,其实都是堆叠的策略模式,使用者通过简单的分类器进行第一层的学习,将它们的预测值作为第二层的特征输入,所以整体大模型其实是并行和串行混合的结构,同时使用者需要注意的是在使用混合策略的时候,选取第二次模型和调整相应的参数是比较重要的。
在一些特殊数据场景的问题上,有时候可以先尝试使用Blending模型,因为相对来说比Stacking简单一些,虽然使用BP神经网络、支持向量机、随机森林、XGBoost等模型的准确率在75%到95%之间,但可以用混合策略模型再进行一点提升,按实战场景来看,效果取决于使用的数据情况,部分数据可能提升只有1到2个百分点,但某些特殊的数据情况可以达到5到6个百分点,如果确实有提升效果,那么可以继续使用Stacking的策略来尝试,理论上会效果更好一些。那么Blending方法的大致步骤如下:
1)首先把数据分为训练集和测试集,比例大约为7:3或者8:2,同时在训练集内部再次进行分割,取出训练集的10%到15%作为验证集,剩下的数据作为真正的训练集。然后选取第一层的模型,并且初始化这些模型的参数。
2)在使用了第一层多个模型训练以后,使用验证集进行训练,并且将第一层模型的预测结果作为第二次的训练集的输入特征,同时真实标签也带入第二层模型。
3)在第二层的训练过程中,选取一个较为简单稳健的模型来训练,最终得到预测结果。
在某种程度上,Stacking方法是在某些竞赛中是非常强的,有时候甚至比深度学习模型的预测效果更好,但是训练较为缓慢。而Blending模型其实是比Stacking简单且快速,因为无需使用K折交叉验证处理,而是直接通过独立的Hold-out形式来处理,所以可以避免数据信息泄露(数据穿越)的问题,但同样由于不做K折交叉验证处理就会导致过拟合,所以要结合具体的数据来决定使用哪种策略。
总的来说,Blending的学习方法是一种非常新颖的机器学习方法,是一位大佬在Netflix竞赛中首先提出并使用的,这种策略比之前提到的Stacking策略更简洁,而且可以使用各种模型进行组合使用,但是它的准确率提升不会太大,从某种角度来说是一种“锦上添花”的策略,而且还需要某些特殊的数据场景才能得到一定的提升。对于初学者来说,需要熟悉并掌握这种思路,尤其是大数据场景里,使用Stacking的成本比较高,因此可以使用Blending策略进行融合学习,从而提升预测的准确率和稳健性。