其他分享
首页 > 其他分享> > 集成模式学习总结

集成模式学习总结

作者:互联网

一、为什么要集成

我们在有限数据上训练模型,再用模型去预测新的数据,并期望在新数据上得到较低的预测损失,这里的预测损失可以指分类问题的错判率或回归问题的均方误差等各类评价指标。

对于实际问题中的数据,我们都可以认为它总是服从某一个分布,预测数据的平均损失主要来自三项:

 

 第一项为数据真实值与模型平均预测值的偏差,偏差越小则代表模型的学习能力越强,能够较好的拟合数据;第二项为模型预测值的方差,方差越小则代表模型的抗干扰能力越强,补一因为数据的扰动而对预测结果造成大幅抖动;第三项为数据中的原始噪声,它不可能通过优化模型来降解的。

 

对于一个具体的学习问题,过于简单的学习器虽然抗干扰能力强,但由于不能充分拟合数据却会造成大的偏差。从而导致总的期望损失较高;类似地,过于复杂地学习器虽然其拟合能力强,但由于学习了多余地局部信息,因此抗干扰能力较弱造成较大地方差,从而导致总地期望损失较高。所以既然对单个学习器地方差和偏差的降解存在难度,那就考虑使用多个学习器进行结果的集成以进一步减小损失,也就是希望利用多个低偏差的学习器进行集成来降低模型的方差或者利用多个低方差学习器进行集成来降低模型的偏差。

二、bagging与boosting

bagging是一种并行集成的方法(bootstrap aggregating),即基于bootstrap抽样的聚合算法,bootstrap抽样即指从样本集合中进行有放回的抽样,假设数据集的样本容量为n且基学习器的个数为M,对于每个基学习器我们可以进行有放回的抽取n个样本,从而生成了M组新的数据集,每个基学习器分别在这些数据集上进行训练,再将最终的结果汇总输出。

boosting是一种串行集成方法,

三、stacking与blending

stacking本质上也属于并行集成方法,但是并不通过抽样来构造数据集进行基模型训练,而是采用K折交叉验证。假设数据集大小为N,测试集大小为M,我们先将数据集均匀地分成K份。对于第m个基模型,我们取K折数据集中地1折为验证集,在剩下地K-1折为训练集,这样依次取遍K份验证数据就可以分别训练得到K个模型以及K份验证集上地相应预测结果,这些预测结果刚好能够拼接起来作为基模型在训练集上的学习特征。

blending集成与stacking过程类似,它的优势是模型的训练次数更少,但其缺陷是不能使用全部的训练数据,相较于使用交叉验证的stacking稳健性较差。blending在数据集上按照一定比例划分出训练集和验证集,每个基模型在训练集上进行训练,并在验证集上的预测结果为F1,F2,,,,Fm。

四、常见问题

1. 什么是偏差和方差分解?偏差是谁的偏差?此处的方差又是指什么?

解答:泛化误差可以分解为偏差、方差和噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度,刻画了学习算法本身的拟合能力。方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响。

2. 相较于使用单个模型,bagging和boosting方法有何优势?

解答:bagging可以降低整体模型的方差,boosting可以降低整体模型的偏差。

3.请叙述stacking的集成流程,并指出blending方法和它的区别

解答:m个不同的基学习器。对于每个基模型,对数据集进行k折,k-1份做训练集,1份做验证集,依次取遍每1折做验证集其余做训练集,训练得到k个模型以及k份验证集上的相应预测结果,这些预测结果恰好能够拼接起来作为基模型在训练集上的学习特征,同时还要用这k个模型对测试集进行预测,并将结果进行平均作为该基模型的输出。对每个基模型进行上述操作后,我们就能得到对应的训练集特征, 以及测试集特征。

此时,使用一个最终模型f, 以为特征,以训练集的样本标签为目标进行训练,在f完成训练后,以为模型的输入,得到的输出结果作为整个集成模型的输出。

blending的区别就是不做k折,只按照一定比例划分出训练集和验证集。其缺陷在于不能使用全部的训练数据,稳健性较stacking差。

标签:集成,总结,训练,偏差,模型,模式,学习,集上,数据
来源: https://www.cnblogs.com/herj-0925/p/15425099.html