机器学习:集成学习(ensemble),bootstrap,Bagging,随机森林,Boosting

集成学习的朴素思想

集成学习基于这样的思想:对于比较复杂的任务,综合许多人的意见来进行决策会比“一家独大”要更好。换句话说、就是通过适当的方式集成许多“个体模型”所得到的最终模型要比单独的“个体模型”的性能更优。
我们面临两个问题:如何选择、生成弱分类器和如何对它们进行提升(集成)?
第一种做法期望各个弱分类器之间依赖性不强、可以同时进行生成。这种做法又称并行方法,其代表为 Bagging,而 Bagging 一个著名的拓展应用便是随机森林(Random Forest,常简称为 RF)。
第二种做法中弱分类器之间具有强依赖性、只能序列生成。这种做法又称串行方法,其代表为 Boosting,而 Boosting 族算法中的代表即是AdaBoost。

Bootstrap理论

bootstrap翻译为自举,简单理解为自采样,通过不断自采样模拟真实随机变量生成的数据集,那么测试样本就丰富起来了,这个和数据加强有一定的异曲同工之妙。

Bagging

Bagging全称为bootstrap aggregating(汇聚),操作过程:使用bootstrap生成M个数据集,使用这些数据集生成M个分类器,最终模型为这M个分类器的简单组合,要么投票表决,要么取平均。
结合 Bagging 的特点、我们可以得出这样一个结论:对于“不稳定”(或说对训练集敏感:若训练样本稍有改变,得到的从样本空间到类别空间的映射 g 就会产生较大的变化)的分类器,Bagging 能够显著地对其进行提升。

随机森林

1、用 Bootstrap 生成出 M 个数据集
2、用这 M 个数据集训练出 M 颗不进行后剪枝决策树,且在每颗决策树的生成过程中,每次对 Node 进行划分时、都从可选特征(比如说有 d 个)中随机挑选出 k 个(k≤d)特征,然后依信息增益的定义从这 k 个特征中选出信息增益最大的特征作为划分标准
3、最终模型即为这 M 个弱分类器的简单组合
一般情况下、推荐取 k = l o g 2 d k=log_2⁡d

Boosting

Boosting 事实上是一族算法、该族算法有一个类似的框架:

  • 1、根据当前的数据训练出一个弱模型
  • 2、根据该弱模型的表现调整数据的样本权重。具体而言:
 		让该弱模型做错的样本在后续训练中获得更多的关注 			
   		让该弱模型做对的样本在后续训练中获得较少的关注
  • 3、最后再根据该弱模型的表现决定该弱模型的“话语权”、亦即投票表决时的“可信度”。自然、表现越好就越有话语权。
    在该学习框架下,对于一个学习问题,只要我们找到了一个“弱学习算法”,就可以把它变成一个“强学习算法”。这当然是意义深刻的,因为往往比较粗糙的“弱学习算法”比较好找、而相对精确的“强学习算法”却难得一求。

猜你喜欢

转载自blog.csdn.net/weixin_40759186/article/details/85464017