面试经常被问到,做个记录!
相同点:
好吧,其实相同点不太好说,如果非要说的话,那就是它们都是由多棵树组成,最终结果由这多棵树一起决定(其实中间的细节还是不一样)。
不同点:
(1)从集成学习来说,RF属于的bagging(稍微有点改变,增加了列抽样),而GBDT属于boosting;
(2)从偏差-方差权衡来说,RF不断的降低模型的方差,GBDT不断的降低模型的偏差;
(3)从训练样本来说,RF每次迭代的样本是从全部训练集中有放回抽样形成的,而GBDT每次使用全部样本;
(4)从训练过程来说,RF可以并行训练,而GBDT只能串行(必须等上一棵树ok了);
(5)从结果来说,RF最终是多棵树进行多数表决,而GBDT是加权融合;
(6)从对数据的要求来说,RF对异常值不敏感,GBDT很敏感;
(7)从泛化能力来说,RF不易过拟合,GBDT容易。