携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情
基本内容
梯度提升机(GBM)是一种提升学习方法(Boosting)。在集成学习中,提升方法(Boosting)是一种很重要的算法,基本原理是串行生成一系列基学习器,这些基学习器直接通过组合到一起构成最终的模型。提高学习法的目标是通过整合基学习器,降低整体模型的损失,进而提高模型的性能。最常用的基学习器为树模型。它用不同的权重将基学习器进行线性组合,使表现优秀的学习器得到重用。Boosting可以通过基本学习器、损失函数和最优的方式来实现。GBM算法首先利用初值的方法对伪残差进行估计,然后利用基元学习器对拟残差进行解译,从而实现对斜率方向的残差的修正。然后用加权因子(学习率)与基础学习器进行线性合并,得到一个新的学习模型。通过这种重复的方法,我们可以获得一个最小化损失功能的模型。
类别特征支持的决策树梯度增强算法(CatBoost)
CatBoost是基于对称决策树的GBDT结构框架,其参数少,支持类型型变量,精度高。CatBoost使用类似于均值编码的方法,但是可以降低过度的拟合。它的具体实现是:将输入的采样集合随机排序,从而生成多个随机情况。对浮点数或属性进行变换。将各个类别的特征值分别转化,得出了相应的数值解。从名字上就可以看得出来, Categorical和Boosting是一体的,CatBoost还解决了梯度和预测偏差问题,减少了过度拟合,提高了算法的精度和泛化性能。
其次,对该模型进行了专门的分类特征处理。首先,统计特定的数据。计算一种新的数字特征类型,并添加一种特定的参数产生新的数字特征。这种方法需要不能对同一数据进行排序(即,0之后的数字为1),所以在进行训练之前,必须把数据集整合。第二种是使用了不同的资料。在每一种树之前,都要进行一次遍历,以决定使用哪种排列来生成一颗树。第三,我们可以考虑使用不同的分类特征。例如,将颜色与种类组合起来,就可以产生类似于蓝色字体的特征。如果要合并更多的分类功能, catboost只会考虑几种组合。当选择第一个节点时,只需要选择一个特征,例如 A。在生成第二个节点时,将 A和任意一种特征相结合,以选择最佳组合方式。
轻量级的梯度提升算法(Light Gradient Boosting Machine)
在最早的GBM算法 xgboost中,首先对分割点进行了预分类,并对各特征的分裂点进行了分析,从而获得了各分裂点的目标函数。虽然 xgboost的逼近分割法可以有效地将分裂点进行分解,减少了运算量,并在一定程度上实现了最优解,但微软亚研院的一款通用的 GBDT工具箱 LightGBM,大大提高了 GBM的准确率。其设计思想如下:1.尽量多地利用数据,而不会影响运算速度。2.当多台机器并用时,通讯费用最小,运算速度更快。而达到上述优点的方法,即是采用了直方图算法,其能较好地改善 GBM算法。基于 xgBoost的优化切分点存在三个改进措施:LightGBM中,由于分割点数量太多,采用了直方图算法。直方图是一种简单的基于桶的特征的分割方法。首先,把连续的浮点特征值离散成 k个整数,再构造一个宽度为k的直方图,并按照其上的 bin特征值进行梯度累加和计数,当遍历数据时,利用离散的数值作为标准,在直方图中进行累积统计量,一次数据处理后,利用直方图积累所需的统计量,最后依据直方图求出最优分割点。
Lightgbm采用了一种单边梯度取样方法(GOSS),它能有效地减小大量的梯度,使其在计算时只考虑到剩余的高梯度,节省了大量的时间和空间开销。为了解决特征数量过多的问题, Lightgbm提出了一种互斥特征绑定的新方法,即通过 EFB将多个互斥特征组合起来,以达到降低多个特征的目的。LightGBM是采用了HistoGram方法,它把连续的浮点特性离散为 k个离散的数值,然后通过 Histogram来构造一个具有 k宽的 Histogram。最后,通过对训练数据的遍历,求出各离散点在直方图中的累积统计。在进行特征选取时,仅需从直方图上求取最佳分割点即可。