Bagging
基本思路:
有数据集N,进行有放回的抽取n个数据,N > n,反复K次,得到K组数据,
K组数据分别独立训练K个模型,然后再投票得到分类结果。
投票方法:
绝对多数投票法,某个类超过半数
相对多数投票法,票数最多的为预测结果,若多个同时最高,则从最高中随机一个
加权投票法,与加权平均类似
若是回归问题,则取平均数
bagging的应用:
bagging是为了降低variance
主要是针对容易过拟合的模型,多个模型投票可以降低过拟合风险。
特别针对稳定性较差的模型,稳定性越差,提升效果越明显。
比如决策树,只要树够深就一定会过拟合,于是随机森林就出现了。
随机森林在基础bagging的思路上还增加了特征随机。
Boosting
基本思路:
是一个迭代过程,每轮训练都是全量样本,每轮训练改变样本的权重,迭代T次后,把这T个模型再
按照训练过程中的权重进行加权得到最终model。
思路上会比bagging复杂些,boosting会减小再上一轮训练正确的样本的权重,增大错误样本在loss计算
中的权重。(对的残差小,错的残差大)
权重调整方式:
先给每一个样本同样的权重1, 训练得到
然后调整权重,增加错误数据的权重,降低正确数据的权重,使得
正确率降低到0.5, 然后把带着新的权重的样本来训练
如此迭代到停止。
boosting应用:
boosting是为了降低bias
与bagging抑制过拟合不同,boosting是为了增强拟合能力,服务目标是弱模型。
Adaboost是boosting的样本应用,并且每一次迭代过程的子训练本身是独立的,都是优化自己的log loss。