目录
1.投票法 Voting
2.平均法 Avaging
3.排序法
4.堆叠法 Stacking
5.混合法 Blending
6.Bagging
7.Boosting
8.瀑布融合法
9.特征融合法
10.预测融合法
11.embedding融合:
基本思想:假设对于一个二分类问题,有3个基础模型,现在我们可以在这些基学习器的基础上得到一个投票的分类器,把票数最多的类作为我们要预测的类别。投票需要3个及3个以上的模型,同时建议要保证模型的多样性,有时候对同质模型们使用投票法并不能取得较好的表现,这是因为同质模型得到的结果之间可能具有较强的相关性,从而会导致多数人把少数人的好想法给压下去了。在2014年KDD Cup上,Marios Michailid对所有结果文件计算Pearson系数,最后选取其中相关性小的模型结果进行投票,分数获得提升。
绝对多数投票法:最终结果必须在投票中占一半以上。
相对多数投票法:最终结果在投票中票数最多。
加权投票法:加权的权重可以人工主观设置或者根据模型评估分数来设置权重。
硬投票:对多个模型直接进行投票,不区分模型结果的相对重要度,最终投票数最多的类为最终被预测的类。
软投票:增加了设置权重的功能,可以为不同模型设置不同权重,进而区别模型不同的重要度。
基本思想:对于回归问题,一个简单直接的思路是取平均。稍稍改进的方法是进行加权平均。权值可以用排序的方法确定,举个例子,比如A、B、C三种基本模型,模型效果进行排名,假设排名分别是1,2,3,那么给这三个模型赋予的权值分别是3/6、2/6、1/6。平均法适用于回归、分类 (针对概率) 任务,对多个学习器的预测结果进行平均。平均法的好处在于平滑结果,从而减少过拟合。
平均法或加权平均法看似简单,其实后面的高级算法也可以说是基于此而产生的,Bagging或者Boosting都是一种把许多弱分类器这样融合成强分类器的思想。
简单算术平均法:Averaging方法就多个模型预测的结果进行平均。这种方法既可以用于回归问题,也可以用于对分类问题的概率进行平均。
加权算术平均法:这种方法是平均法的扩展。考虑不同模型的能力不同,对最终结果的贡献也有差异,需要用权重来表征不同模型的重要性importance。
几何平均法:受极端值的影响较算术平均法小。
问题:一些波动小的模型,如果用平均法进行融合,会对最终结果的影响很小,无法体现作用。
实现步骤:
(1) 对预测结果进行排序;
(2) 对排序序号进行平均;
(3) 对平均排序序号进行归一化。
对于新样本的更新方式:
(1)重新排序:将新样本放入原测试集中,重新排序,一旦数据量大,时间复杂度会增加。
(2)参考历史排序:先将历史测试集的预测结果和排序结果保存,新样本进来后,在历史测试集中找到与新样本预测值相近的值,然后取其排序号赋予新样本。之后平均排序,使用历史最大最小值进行归一化操作即可。
基本思想:基于原始数据,训练出多个基学习器,然后将基学习器的预测结果组合成新的训练集,去训练一个新的学习器。
分类:
问题:
如果训练集和测试集分布不那么一致,那么用初始模型训练的标签 再利用真实标签进行再训练,毫无疑问会导致一定的模型过拟合训练集,这样或许模型在测试集上的泛化能力或者说效果会有一定的下降。因此为解决如何降低再训练的过拟合性的问题,我们一般采用以下两种方法:
(1)次级模型尽量选择简单的线性模型
(2)利用K折交叉验证
问题:对于stacking,基学习器和元学习器本质上都是用同一训练集训练的 (虽然输入的x不一样,但标签y一样),这就会造成信息泄露,从而导致元学习器过拟合我们的数据集。
实现步骤:对原始数据集先划分出一个较小的留出集,比如10%训练集被当做留出集,那么Blending用90%的数据做基学习器的训练,而10%留出集用作训练元学习器,这样基学习器和元学习是用不同数据集来训练的。
Stacking与Blending的对比:
优点在于:
缺点在于:
基本思想:Bagging基于bootstrap(自采样),也就是有放回的采样。训练子集的大小和原始数据集的大小相同。Bagging的技术使用子集来了解整个样本集的分布,通过bagging采样的子集的大小要小于原始集合。
Bagging是一种并行式的集成学习方法,即基学习器的训练之间没有前后顺序可以同时进行,Bagging使用“有放回”采样的方式选取训练集,对于包含m个样本的训练集,进行m次有放回的随机采样操作,从而得到m个样本的采样集,这样训练集中有接近36.8%的样本没有被采到。按照相同的方式重复进行,我们就可以采集到T个包含m个样本的数据集,从而训练出T个基学习器,最终对这T个基学习器的输出进行结合。
基础思想:Boosting是一种串行的工作机制,即个体学习器的训练存在依赖关系,必须一步一步序列化进行。Boosting是一个序列化的过程,后续模型会矫正之前模型的预测结果。也就是说,之后的模型依赖于之前的模型。
其基本思想是:增加前一个基学习器在训练训练过程中预测错误样本的权重,使得后续基学习器更加关注这些打标错误的训练样本,尽可能纠正这些错误,一直向下串行直至产生需要的T个基学习器,Boosting最终对这T个学习器进行加权结合,产生学习器委员会。
训练过程:
瀑布型(Waterfall Model)融合方法采用了将多个模型串联的方法。每个推荐算法被视为一个过滤器,通过将不同粒度的过滤器前后衔接的方法来进行:
在瀑布型混合技术中,前一个推荐方法过滤的结果,将作为后一个推荐方法的候选集合输入,层层递进,候选结果在此过程中会被逐步遴选,最终得到一个量少质高的结果集合。这样设计通常用于存在大量候选集合的推荐场景上。
设计瀑布型混合系统中,通常会将运算速度快、区分度低的算法排在前列,逐步过渡为重量级的算法,让宝贵的运算资源集中在少量较高候选结果的运算上。在面对候选推荐对象(Item)数量庞大,而可曝光的推荐结果较少,要求精度较高、且运算时间有限的场景下,往往非常适用。
不同的原始数据质量,对推荐计算的结果有很大的影响。以用户兴趣模型为例,我们既可以从用户的实际购买行为中,挖掘出用户的 “显式” 兴趣,又可以用用户的点击行为中,挖掘用户 “隐式” 兴趣;另外从用户分类、人口统计学分析中,也可以推测用户偏好;如果有用户的社交网络,那么也可以了解周围用户对该用户兴趣的影响。
所以通过使用不同的数据来源,抽取不同的特征,输入到推荐模型中进行训练,然后将结果合并。这种思路能解决现实中经常遇到的数据缺失的问题,因为并非所有用户都有齐全的各类数据,例如有些用户就缺少交易信息,有些则没有社交关系数据等。通过特征融合的方法能确保模型不挑食,扩大适用面。
推荐算法也可以被视为一种 “预测算法”,即我们为每个用户来预测他接下来最有可能喜欢的商品。而预测融合法的思想是,我们可以对每个预测算法再进行一次预测,即不同的算法的预测结果,我们可以训练第二层的预测算法去再次进行预测,并生成最终的预测结果。
第二层预测模型可以使用常用的分类算法,如 SVM、随机森林、较大熵等,但达观实践中,融合效果较好的是 GBDT(Gradient Boosting Decision Tree) 方法。
参考:
【1】https://zhuanlan.zhihu.com/p/352455052
【2】https://cloud.tencent.com/developer/article/1614539
【3】https://blog.csdn.net/weixin_43265122/article/details/103363033
【4】https://blog.csdn.net/dong52130/article/details/101300107