机器学习(六)决策树、随机森林、GBDT,XGBoost,LightBGM

一、决策树

(一)
(二)
(三)决策树的剪枝

预剪枝:

  • 树到达一定深度时,停止生长。
  • 当前结点样本数量小于阈值,停止生长。
  • 计算每次分裂对测试集的准确度提升,小于阈值,停止生长。

后剪枝:
先生成完全生长的决策树,从最底层开始剪枝,用子结点代替子树

  • 错误率降低剪枝(Reduced Error Pruning, REP)
  • 悲观剪枝(Pessimistic Error Pruning, PEP)
  • 代价复杂度剪枝(Cost Complexity Pruning, CCP)

二、集成学习


三、随机森林


四、GBDT

(一)介绍

根据当前模型损失函数的负梯度信息来训练新加入的弱分类器。
基分类器:CART。

(二)优缺点

优点

  • 预测阶段速度快,可并行。
  • 稠密数据集上表现很好。
  • 决策树为基分类器,解释性和鲁棒性好,可以自动发现特征高阶关系,不需要特殊预处理。

缺点

  • 训练阶段需要串行。
  • 高维稀疏数据集上表现不好。

五、XGBoost

(一)介绍

(二)GBDT和XGBoost比较

  • 基分类器是CART时,XGBoost加入正则项,防止过拟合,提高泛化能力。
  • GBDT训练模型时,只用了一阶导,XGBoost对损失函数二阶泰勒展开,同时使用一阶导和二阶导。
  • GBDT基分类器:CART;XGBoost支持多种基分类器,如线性分类器。
  • GBDT每轮迭代使用全部数据,XGBoost对数据采样。
  • GBDT没有缺失值处理,XGBoost有。

六、LightBGM

对于XGB的改进( 精度和速度)

  • 树生长
    XGB:layer-wise,不能保证最优的分裂被优先选择,由于高度限制,最优分裂可能不生长。
    LXG:leaf-wise,优先选择最优的分裂点。
  • 加速-特征
    N 个 feature,每个 feature 有 M 个 Split Value,过每个data,工作量很大;可以把Split Value 分桶,分裂时不需要过每个 date,提前做好预先计算即可。
  • 加速-多特征
    如果有些 feature 共现程度不高,可以把他们绑在一起。整个算法分为四步,首先根据任意两个 feature 之间的冲突或贡献的次数构建无向图,在这个无向图中根据度进行降序排列。如果加入一个新 feature 的时候,它对应的冲突个数大于一个阈值,就新开一个 bundle。
  • 加速-样本
    方法叫 GOSS,假设有 N 个样本,每个样本都有梯度值,梯度值较大的样本对迭代影响大。根据阈值分为两部分,对梯度值较小的样本采样。

七、参考资料

从XGB到LGB:美团外卖树模型的迭代之路

你可能感兴趣的:(机器学习(六)决策树、随机森林、GBDT,XGBoost,LightBGM)