1、XGBoost
XGBoost算法的思想:不断添加树,不断进行特征分裂来生成一棵树,每添加一棵树就是学习一个新的函数来拟合上次的残差,当训练完成后得到K棵树,要预测一个样本的分数,其实就是根据样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点对应一个分数,最后需要将每棵树对应的分数加起来就是该样本的预测值;
XGBoost能自动利用cpu的多线程,而且适当改进了gradient boosting,加了剪枝,控制了模型的复杂程度, 传统GBDT以CART作为基分类器,特指梯度提升决策树算法,而XGBoost还支持线性分类器(gblinear),这个时候XGBoost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题);
XGBoost使用的是pre-sorted算法(对所有特征都按照特征的数值进行预排序,基本思想是对所有特征都按照特征的数值进行预排序;然后在遍历分割点的时候用O(#data)的代价找到一个特征上的最好分割点最后,找到一个特征的分割点后,将数据分裂成左右子节点;
2、LightGBM
LightGBM是个快速、分布式的、高性能的基于决策树的梯度提升算法。可以用于分类、回归、排序等机器学习任务中。因为它是基于决策树算法的,它采用最优的leaf-wise策略分裂叶子节点,其它提升算法一般采用的是depth-wise或者level-wise而不是leaf-wise。因此,在LightGBM算法中,当增长到相同的叶子节点,leaf-wise算法比level-wise算法减少更多的loss。因此导致更高的精度,而其他的任何已存在的提升算法都不能够达。与此同时,它的速度也让人感到震惊,这就是该算法名字Light 的原因。Leaf-Wise分裂导致复杂性的增加并且可能导致过拟合。但是这是可以通过设置另一个参数 max-depth来克服,它分裂产生的树的最大深度。总结起来LightGBM采用Histogram算法进行特征选择以及采用Leaf-wise的决策树生长策略,使其在一批以树模型为基模型的boosting算法中脱颖而出。
Li