Gradient Boosting Decision Trees 是把1999年的 Gradient Boosting Machine集成方法应用到回归树上,著名的实现有XGBoost 和 LightGBM,是处理结构化(表格)数据的首选算法之一。
特征工程
- 对特征可以自动筛选重要程度的树模型对特征冗余不敏感。
- 树模型不能像神经网络那样进行特征提取,需要手工进行特征生成,又因为第一点,可以放心生成所有可能相关的特征。
- 树模型不太适合独热编码,可以尝试标签编码,或者频率编码。
调参
筛选重要的参数,根据机器学习调参的基本原则进行调整。
- 欠拟合:训练,测试误差都很高,需要增加模型复杂度,或者训练更长的时间。
- 过拟合:训练误差仍在降低,但是测试误差开始上升。需要降低模型复杂度,减少训练时间或者采用正则化方法。
重要参数,红色控制训练时长,蓝色控制正则化,绿色控制模型复杂度。不同的实现,参数的名字可能不一样。
自动调参工具
有skopt, optuna, Hyperopt, 参考文章。
实现
两个常用的实现的主要区别有:
- 决策树的生成: XGBoost实用贪婪逼近的方法,而LGBM使用了直方图。
- 优化目标:XGBoost用的泰勒级数的一阶展开,LGB
LGBM 独有参数
boosting type: gbdt是默认,还可以用基于梯度的单边采样(GOSS)或者采用了Dropout的DART。
enable_bundle: 默认为False, 是指lgb论文中提出的互斥特征捆绑算法Exclusive Feature Bundling。
XGBoost 独有参数
XGBoost可以选用gblinear 线性模型作为基学习器。