深入理解GBDT二分类算法
转载自 https://blog.****.net/program_developer/article/details/103060416
目录:
- GBDT分类算法简介
- GBDT二分类算法
2.1 逻辑回归的对数损失函数
2.2 GBDT二分类原理 - GBDT二分类算法实例
- 手撕GBDT二分类算法
4.1 用Python3实现GBDT二分类算法
4.2 用sklearn实现GBDT二分类算法 - GBDT分类任务常见的损失函数
- 总结
- Reference
本文的主要内容概览:
1. GBDT分类算法简介
GBDT无论用于分类还是回归,一直使用的是CART回归树。GBDT不会因为我们所选择的任务是分类任务就选用分类树,这里的核心原因是GBDT每轮的训练是在上一轮训练模型的负梯度值基础之上训练的。这就要求每轮迭代的时候,真实标签减去弱分类器的输出结果是有意义的,即残差是有意义的。如果选用的弱分类器是分类树,类别相减是没有意义的。对于这样的问题,可以采用两种方法来解决:
- 采用指数损失函数,这样GBDT就退化成了Adaboost,能够解决分类的问题;
- 使用类似于逻辑回归的对数似然损失函数,如此可以通过结果的概率值与真实概率值的差距当做残差来拟合;
下面我们就通过二分类问题,去看看GBDT究竟是如何做分类的。
2. GBDT二分类算法
2.1 逻辑回归的对数损失函数
逻辑回归的预测函数为:
rm,i=