文章目录
- 随机森林与Adaboost
- 一:随机森林
- 1.1:随即森林思想
- 1.2 随机森林的两个随机
- 1.3:随机森林的步骤
- 1.4 随机森林的优点
- 1.5 随机森林的缺点
- 二:Adaboost
- 2.1: Boosting思想
- 2.2:AdaBoost步骤
- 2.3: AdaBoost优点
- 2.4:Adaboost算法缺点:
随机森林与Adaboost
一:随机森林
1.1:随即森林思想
随机森林是bagging思想下的一个算法。Bagging的思想很简单,从原来的数据集中随机抽取出数据,同时保持数据集的规模不变。用新的数据集训练弱学习器。重复多次,得到强分类器。在回归问题中,通过取平均值的方汇总所有基学习器的结果,在分类问题中,通常使用投票法汇总。
一棵树是决策树,多棵树是随即森林。一棵树有一个决策,多棵树有多个决策权,把所有树的决策综合在一起,肯定比单个树决策要强很多,解决了单棵决策树泛化能力弱的缺点。
1.2 随机森林的两个随机
随即森林的随机体现在两个方面,一个是随机选择样本,一个是随机选择特征。
- 随机样本选择就是从M个训练样本中有放回地随机抽取M个样本作为训练集
- 未抽取样本的概率为36.8% ;被抽取样本的概率为63.2%(每次抽取的概率相等为1/m,可能重复抽取。我们做一个简单的估计,样本m次采样中始终不被采样的概率为 ( 1-(1/m)^m)
- 随机选择特征就是从候选的特征中随机抽取k个特征。
有了这2个随机因素,即使每棵决策树没有进行剪枝,随机森林也不会产生过拟合的现象。
1.3:随机森林的步骤
- 首先,每次从原来的N个训练样本中有放回地随机抽取N个样本。构成M个样本集。
- 然后,用每个样本集作为训练样本构造决策树。对每个样本集,从候选的特征中随机抽取k个特征,构建决策树。单个决策树在产生样本集和确定特征后,为了增强基分类器之间的差异性,不剪枝。
- 最后,将得到多个决策树集成构成随机森林。如果是分类问题那么对这些树的输出进行投票,以得票最多的类作为随机森林的决策。如果是回归问题就采用平均值的方法进行决策。
1.4 随机森林的优点
- (1)学习过程快速
- (2)分类结果更加准确
- (3)可以处理高维度的属性,并且不用做特征选择
1.5 随机森林的缺点
- 1.当随机森林中的决策树个数很多的时候,训练时需要的时间和空间都很大
- 2.随机森林还有许多不好解释的地方,类似黑盒模型。
小问题:
随机森林为什么进行随机抽样?
- 如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的,这样的话完全没有bagging的必要。
随机森林为什么有放回的抽取?
- 如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集,而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此使用完全不同的训练集来训练每棵树这样对最终分类结果是没有帮助的,也就是说每棵树训练出来都是有很大的差异的.而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此要有放回地抽样。
二:Adaboost
AdaBoost自适应提升学习算法是Boosting思想下的一个算法
2.1: Boosting思想
Boosting是一种提升算法(Boosting Algorithm), 主要用来解决分类问题。它会逐个训练单个的弱分类器 ,确定每个弱分类器的权重,之后把若干个单个的弱分类器组合成一个强分类器 。
2.2:AdaBoost步骤
Adaboost迭代算法有3步:
- 初始化训练数据的权值分布:假设有N个样本,每个样本赋予相同权值1/N。
- 串行训练弱分类器:利用上一轮调整后的样本权重来训练弱分类器。利用本轮训练模型预测样本,依据预测结果和准确率对训练集样本权重进行调整,提高错分样本权重,用于下一轮模型训练。多次迭代,训练多个弱分类器。
- 训练数据集上的分类误差率
- 计算弱分类器的权重
- 加权组合弱分类器,构成强分类器:利用各分类的错误率来确定分类器的权重,错误率越低,权重越大,在结果中体现的重要性也越大。
2.3: AdaBoost优点
AdaBoost把多个不同的弱分类算法,用一种加权的方式组合起来,构成准确率高的强分类器。
- 可以使用各种分类算法构建子分类器,Adaboost算法提供的是框架;
- 精度很高的分类器
- 充分考虑了每一个分类器的权重。
2.4:Adaboost算法缺点:
(1) AdaBoost 迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证
来进行确定;
(2)训练比较耗时,每次重新训练新模型需要计算调整样本权重。