深入理解GBDT多分类算法

本文深入探讨了GBDT(梯度提升决策树)在多分类问题中的应用,从Softmax回归的对数损失函数出发,解析了GBDT多分类原理,通过实例详细解释了如何使用GBDT进行多分类,包括用Python3和sklearn实现。最后,文章总结了GBDT在多分类任务中的关键点,并提供了相关参考资料。

目录:

  1. GBDT多分类算法
    1.1 Softmax回归的对数损失函数
    1.2 GBDT多分类原理
  2. GBDT多分类算法实例
  3. 手撕GBDT多分类算法
    3.1 用Python3实现GBDT多分类算法
    3.2 用sklearn实现GBDT多分类算法
  4. 总结
  5. Reference

本文的主要内容概览:
在这里插入图片描述

1. GBDT多分类算法

1.1 Softmax回归的对数损失函数

当使用逻辑回归处理多标签的分类问题时,如果一个样本只对应于一个标签,我们可以假设每个样本属于不同标签的概率服从于几何分布,使用多项逻辑回归(Softmax Regression)来进行分类:
P ( Y = y i ∣ x ) = h θ ( x ) [ P ( Y = 1 ∣ x ; θ ) P ( Y = 2 ∣ x ; θ ) . . . P ( Y = k ∣ x ; θ ) ] = 1 ∑ j = 1 k e θ j T x [ e θ 1 T x e θ 2 T x . . . e θ k T x ] \begin{aligned} P(Y=y_{i}|x) &= h_{\theta}(x) \begin{bmatrix} P(Y=1|x;\theta )\\ P(Y=2|x;\theta) \\ . \\ . \\ . \\ P(Y=k|x;\theta) \end{bmatrix} \\ &=\frac{1}{\sum_{j=1}^{k}{e^{\theta_{j}^{T}x}}} \begin{bmatrix} e^{\theta^{T}_{1}x} \\ e^{\theta^{T}_{2}x} \\ . \\ . \\ . \\ e^{\theta^{T}_{k}x } \end{bmatrix} \end{aligned} P(Y=yix)=hθ(x)P(Y=1x;θ)P(Y=2x;θ)...P(Y=kx;θ)=j=1keθjTx1eθ1Txeθ2Tx...eθkTx
其中, θ 1 , θ 2 , . . . , θ k ∈ ℜ n \theta_{1},\theta_{2},...,\theta_{k}\in \Re^{n} θ1,θ2,...,θkn 为模型的参数,而 1 ∑ j = 1 k e θ j T x \frac{1}{\sum_{j=1}^{k}{e^{\theta^{T}_{j}x}}} j=1keθjTx1 可以看作是对概率的归一化。一般来说,多项逻辑回归具有参数冗余的特点,即将 θ 1 , θ 2 , . . . , θ k \theta_{1},\theta_{2},...,\theta_{k} θ1,θ2,...,θk 同时加减一个向量后预测结果不变,因为 P ( Y = 1 ∣ x ) + P ( Y = 2 ∣ x ) + . . . + P ( Y = k ∣ x ) = 1 P(Y=1|x)+P(Y=2|x)+...+P(Y=k|x) = 1 P(Y=1x)+P(Y=2x)+...+P(Y=kx)=1 ,所以 P ( Y = 1 ∣ x ) = 1 − P ( Y = 2 ∣ x ) − . . . − P ( Y = k ∣ x ) P(Y=1|x) = 1-P(Y=2|x)-...-P(Y=k|x) P(Y=1x)=1P(Y=2x)...P(Y=kx)

假设从参数向量 θ j T \theta^{T}_{j} θjT 中减去向量 ψ \psi ψ ,这时每一个 θ j T \theta^{T}_{j} θjT都变成了 θ j T − ψ ( j = 1 , 2 , . . . , k ) \theta^{T}_{j} - \psi (j=1,2,...,k) θjTψ(j=1,2,...,k)。此时假设函数变成了以下公式:
P ( Y = y j ∣ x ; θ ) = e θ j T x ∑ i = 1 k e θ i T x = e ( θ j T − ψ ) x ∑ i = 1 k e ( θ i T − ψ ) x = e θ j T x × e − ψ x ∑ i = 1 k e θ i T x × e − ψ x = e θ j T x ∑ i = 1 k e θ i T x \begin{aligned} P(Y=y_{j}|x;\theta) &= \frac{e^{\theta^{T}_{j}x}}{\sum_{i=1}^{k}{e^{\theta^{T}_{i}x}}} \\ &= \frac{e^{(\theta^{T}_{j}-\psi)x}}{\sum_{i=1}^{k}{e^{(\theta^{T}_{i}-\psi) x}}} \\ & = \frac{e^{\theta^{T}_{j}x} \times e^{-\psi x}}{\sum_{i=1}^{k}{e^{\theta^{T}_{i}x} \times e^{-\psi x} }} \\ & = \frac{e^{\theta^{T}_{j}x}}{\sum_{i=1}^{k}{e^{\theta^{T}_{i}x}}} \end{aligned} P(Y=yjx;θ)=i=1keθiTxeθjTx=i=1ke(θiTψ)xe(θjTψ)x=i=1keθiTx×eψxeθjTx×eψx=i=1keθiTxeθjT

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值