随机森林与Adaboost两者均归属于集成学习算法,随机森林是Bagging方法,Adaboost是Boosting方法。
我们先来比较一下Boosting方法和Bagging方法的区别:
1.在样本选择上:
Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重;
Bagging采用的是Bootstrap随机有放回抽样。
2.在样本权重上:
Boosting根据错误率调整样本权重,错误率越大的样本权重越大;
Bagging使用的是均匀取样,每个样本权重相等。
3.在并行计算上:
Boosting各个预测函数必须按顺序迭代生成;
Bagging各个预测函数可以并行生成。
4.在预测函数上:
Boosting中误差越小的预测函数其权重越大;
Bagging所有的预测函数的权重相等。
然后我们再来比较随机森林和Adaboost的区别:
相同之处:
二者都是要训练很多棵决策树;
二者都是bootsrap自助法选取样本。
不同之处:
随机森林在训练每一棵树的时候,随机挑选了部分变量作为拆分变量,而不是所有的变量都去作为拆分变量。
Adaboost后面树的训练,其在变量抽样选取的时候,对于上一棵树分错的样本,抽中的概率会加大。
在预测新数据时:
Adaboost中所有的树加权投票来决定因变量的预测值,每棵树的权重和错误率有关;
随机森林按照所有树中少数服从多数树的分类值来决定因变量的预测值。
Adaboost的优点:
1.adaboost是一种有很高精度的分类器;
2.可以使用各种方法构建子分类器,adaboost算法提供的是框架;
3.当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器构造极其简单;
4.简单,不用做特征筛选;
5.不用担心overfitting。
随机森林的优点:
2.它可以处理大量的输入变量;
3.它可以在决定类别时,评估变量的重要性;
4.在建造森林时,它可以在内部对于一般化后的误差产生不偏差的估计。
以上是这次的总结内容,欢迎指正与补充。