集成学习
集成学习的两种主要思路:Bagging、Boosting
1.什么是集成学习?
集成学习 属于 机器学习,是一种训练思路。
2.Bagging——民主
Bagging 的核心思路是——民主
Bagging 的思路是所有基础模型都一致对待,每个基础模型手里都只有一票。然后使用民主投票的方式得到最终的结果。
大部分情况下,经过 bagging 得到的结果,方差(variance)更小。
具体过程:
1.从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中),共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
Booststraping:意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法(如均值、方差等)。
其核心思想和基本步骤如下:
(1)采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。
(2)根据抽出的样本计算统计量T。
(3)重复上述N次(一般大于1000),得到N个统计量T。
(4)计算上述N个统计量T的样本方差,得到统计量的方差。
应该说是Bootstrap是现代统计学较为流行的方法,小样本效果好,通过方差的估计可以构造置信区间等。
2.每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
3.
对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;
对回归问题,计算上述模型的均值作为最后的结果。
(所有模型的重要性相同)
举例:
在 bagging 的方法中,最广为熟知的就是随机森林了:bagging + 决策树 = 随机森林。
3.Boosting——挑选精英
Boosting 和 bagging 最本质的差别在于他对基础模型不是一致对待的,而是经过不停的考验和筛选来挑选出「精英」,然后给精英更多的投票权,表现不好的基础模型则给较少的投票权,然后综合所有人的投票得到最终结果。
大部分情况下,经过 boosting 得到的结果偏差(bias)更小。
具体过程:
1.通过加法模型将基础模型进行线性的组合。
2.每一轮训练都提升那些错误率小的基础模型权重,同时减小错误率高的模型权重。
3.在每一轮改变训练数据的权值或概率分布,改变了训练数据的权值(即改变了样本的概率分布),其目标是为了将关注点放在被错误分类的样本上。具体做法为:减少上一轮被正确分类的样本权值,增加上一轮被错误分类的样本权值,来使得分类器对误分的数据有较好的效果。
举例:
在 boosting 的方法中,比较主流的有 Adaboost 、 Gradient boosting 和 Xgboost。
![](https://i-blog.csdnimg.cn/blog_migrate/2c659232926ea694dadda222a39ec456.png#pic_center)