随机森林算法基于决策树算法,所以没有基础的朋友请先自行学习决策树相关知识;但仅了解决策树还不够,还需了解组合算法之一的Bagging算法,在这顺便将另一组合算法Boosting简单作个对比。
Bagging算法:是一种抽样方法
采用有放回的随机采样,从数据集中重复抽取大小为N的子样本
对每个子集使用不相同的算法建立分类器(或回归模型)
综合多个模型的输出结果,对于分类问题采取投票的方法,对于回归问题取平均值
Boosting算法(以AdaBoost为例):是一种提升算法
需要注意的是:
对于Bagging算法,原始数据集的大小是N,测试数据集的大小是N,训练集的大小也是N。
为了简化理解以决策树为例,Bagging较单棵决策树来说,降低了方差,但损失了模型的可解释性,因为将多棵决策树(可以是单种分类器或多种算法组合的分类器)的结果进行了平均。自适应提升方法AdaBoost较单棵决策树来说,降低了偏差,同样损失了模型的可解释性。 还有梯度提升方法Gradient Boosting等
在学习时为每一个样本赋上一个权重,初始时各样本权重一样
基于错误率进行取样,每一次迭代都根据上一次迭代的预测结果对训练失败的样本赋以较大的权重
N次迭代后,将会得到N个简单的分类器,为预测效果好的分类器赋以较大的权重
可能会引起退化(过拟合)
一、随机森林1.1模型
与传统Bagging算法随机抽样与投票决定分类结果以外,随机森林增加了特征随机抽样过程,并依此建立多颗决策树。
行方向上样本随机:采用放回抽样(bootstraping)得到训练数据
列方向上特征随机:采用无放回随机抽样得到特征子集(从M个feature中,选择m < M个特征),并据此得到其最优切分属性或切分点
重复以上两步m次,即建立了m棵决策树
这m个决策树形成随机森林,通过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)
随机森林不需剪枝,因样本及特征随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting
领取专属 10元无门槛券
私享最新 技术干货