python实现GBDT算法的回归、二分类以及多分类,算法流程解读并可视化

2019-10-28 16:10:48 浏览数 (1)

GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么?   首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类,GBDT使用的决策树通通都是都是CART回归树。为什么不用CART分类树呢?因为GBDT每次迭代要拟合的是梯度值,是连续值所以要用回归树。   对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中的可划分点包含了所有特征的所有可取的值。在分类树中最佳划分点的判别标准是熵或者基尼系数,都是用纯度来衡量的,但是在回归树中的样本标签是连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,它能很好的评判拟合程度。

算法原理以及公式推导请前往blog:

https://blog.csdn.net/weixin_41194171/article/details/85042720

https://blog.csdn.net/zpalyq110/article/details/79527653

AI项目体验地址 https://loveai.tech

运行指南

  • 回归测试: python example.py --model = regression
  • 二分类测试: python example.py --model = binary_cf
  • 多分类测试: python example.py --model = multi_cf
  • 其他可配置参数:lr -- 学习率, trees -- 构建的决策树数量即迭代次数, depth -- 决策树的深度, count -- 决策树节点分裂的最小数据数量, is_log -- 是否打印树的生成过程, is_plot -- 是否可视化树的结构.
  • 结果文件:运行后会生成results文件夹,里面包含了每棵树的内部结构和生成日志

结果展示

仅展示最后所有树的集合,具体每棵树的详细信息望读者自行运行代码~

0 人点赞