1、它们都是集成(ensemble)方法,即通过训练多个基学习器进行表决来得到最终的预测输出。
2、RF属于Bagging,而后三种属于Boosting。Bagging与Boosting的区别:
(1)Bagging关注降低方差,独立地训练多个学习器;而Boosting则关注降低偏差,训练一簇“弱”的基学习器来达到“强”的学习器。
(2)Bagging所有基学习器的训练集是同分布的,都是由训练集中进行有放回抽样而得;但Boosting所有基学习器的训练集不是同分布的,每个基学习器训练后都会调整数据分布,使得前n-1个基学习器分错的样本在第n个基学习器中具有更大的权重。
(3)Bagging在表决时,所有基学习器具有同样的权重;但Boosting在表决时,基学习器的权重与它在训练集上的错误率有关。
(4)Bagging可并行训练,因为所有基学习器之间没有任何关联;但Boosting不行。
2、XGBoost与GBDT的主要区别体现在对loss函数的使用上。
(1)它们的loss都是基于极大似然估计的,但XGBoost的loss函数里还显式地加入了正则化项,以防止过拟合。
(2)GBDT在构建基学习器时,只用到了loss的一阶导数,而XGBoost用到了loss的二阶展开项,这也是它命名为eXtreme Gradient Boost的原因。
(3)GBDT只能以CART作为基分类器,xgboost的基学习器除了决策树,也支持线性分类器。
(4)xgboost借鉴了RF的做法,可以对特征进行列抽样,这样降低过拟合,而且减少计算量;
3、LightGBM与XGBoost的主要区别在于树结点的划分策略。
(1)XGBoost的树生长策略是“广度优先”,或level-wise的,即尽量对子树的所有节点都进行划分。但LightGBM的树生长策略是“深度优先”,或l