在前面的第4部分中,我们完成了模型的建模部分,我们也尝试着使用多个模型看看实际效果。
在实际的比赛中,通过融合多个不同的模型,可能提升机器学习的性能。
一般来说,模型之间差异越大,融合所得的结果将会更好。这种特性不会受融合方式的影响。注意这里所指模型之间的差异,并不是指正确率的差异,而是指模型之间相关性的差异。
一般经常用到的融合方法有:
- 简单方法:
平均法(Averaging)-针对回归问题
投票法(Voting)- 针对分类问题
- 简单方法:
- 高阶方法:
stacking
blending
下面分别叙述:
- 高阶方法:
1 平均法Averaging
平均法是针对回归问题而设计的模型融合方法。假如针对一个具体回归任务,设计了三种不同的模型,各自有着不同的预测结果。平均法就是将折三个不同的模型的预测结果进行简单平均,得到一个新的预测值来作为最终的结果。
通过在取平均值的过程,给予不同的模型不同的权重,平均法又可以分为简单平均和加权平均。前者是对不对的模型给予同样的权重。而后者会根据模型预测结果的准确率调整权重值,相当于给正确率高的模型更高的权重。
两者的公式如下:
- 简单加权
image.png进行投票其结果为:
image.png其投票结果将为:
在这里插入图片描述
如图:图中有五个基分类器,将数据分别放入其中进行训练然后得到预测结果,再将得到的五个预测结果作为模型六的输入特征再次进行训练,得到最终结果。但是由于直接由五个基学习器获得结果直接带入模型六中,容易导致过拟合,因此在使用五个及以上模型进行训练的时候,使用k折交叉验证。
4 blending
blending是将预测的值作为新的特征和原特征合并,构成新的特征值,用于预测。为了防止过拟合,将数据分为两部分d1、d2,使用d1的数据作为训练集,d2数据作为测试集。预测得到的数据作为新特征使用d2的数据作为训练集结合新特征,预测测试集结果。
在这里插入图片描述stacking与blending区别:
a. stacking
(1)stacking中由于两层使用的数据不同,所以可以避免信息泄露的问题。
(2)在组队竞赛的过程中,不需要给队友分享自己的随机种子。
b. Blending
(1)blending比stacking简单,不需要构建多层模型。
(2)由于blending对将数据划分为两个部分,在最后预测时有部分数据信息将被忽略。
(3)同时在使用第二层数据时可能会因为第二层数据较少产生过拟合现象。
网友评论