二分類問題
對於二分類問題,原論文中使用的對數損失函數:
L(y,F)=log(1+exp(−2yF)),y∈−1,1
其中
F(x)=21log[Pr(y=−1∣x)Pr(y=1∣x)]
那麼按照上面的算法一步步進行計算,首先計算負梯度
y~i=−[∂F(xi)∂L(y,F(xi))]F(x)=Fm−1(x)=1+exp(2yiFm−1(xi))2yi
然後估計葉子節點的值
γjm=argminγxi∈Rm∑log(1+exp(−2yi(Fm−1(xi)+γ)))
原論文中,直接使用Newton-Raphson方法得出近似結果,
γjm=∑xi∈Rm∣y~i∣(2−∣y~i∣)∑xi∈Rmy~i
初始值如何設置
在梯度提升樹算法中,我們知道,初始值的設置是:
Fo(x)=argmini=1∑NL(yi,F(xi))
我們讓損失函數L對F求偏導,並令偏導爲0,求極值
∂F∂∑i=1NL(yi,F(xi))=0i=1∑Ne−2yiF+1(−2yi)e−2yiF=0
由於是二分類,所以yi的取值是1和-1,所以有
i:yi=1∑e−2F+12e−2F+i:yi=−1∑e2F+1−2e2F=0
將分母處理成一致:
\sum_{i:y_i=1} \frac{2}{e^{2F}+1} + \sum_{i:y_i=-1} \frac{-2e{2F}}{e{2F}+1} = 0
設正樣本數量爲m個,負樣本數量爲n個,則有:
m−ne2F=0
e2F=nm=1−m+nm−n1+m+nm−n=1−yˉ1+yˉ
m+n表示樣本總數,m-n表示yi求和
最終可以得出
Fo(X)=21log1−yˉ1+yˉ
牛頓近似法求解
如何將公式1轉化爲公式2
γjm=argminγxi∈Rm∑log(1+exp(−2yi(Fm−1(xi)+γ)))
γjm=∑xi∈Rm∣y~i∣(2−∣y~i∣)∑xi∈Rmy~i
首先,牛頓法是一種迭代求解的方法,論文中提到進一步迭代,我們首先令:
g(γ)=xi∈Rjm∑log(1+exp(−2yi(Fm−1(xi+γ))))
然後使用牛頓法求解γ0=0開始迭代
γjm=γ0−g′′(γ0)g′(γ0)=−g′′(γ0)g′(γ0)
然後分別對γ進行一階求導和二階求導
g′(γ)=xi∈Rjm∑1+exp(2yi(Fm−1(xi)+γ))−2yi
g′′(γ)=xi∈Rjm∑[1+exp(2yi(Fm−1(xi)+γ))]24yi2exp(2yi(Fm−1(xi)+γ))=xi∈Rjm∑[1+exp(2yi(Fm−1(xi)+γ))]24yi2(exp(2yi(Fm−1(xi)+γ))+1)−4yi2
然後由於
y~i=−[∂F(xi)∂L(y,F(xi))]F(x)=Fm−1(x)=1+exp(2yiFm−1(xi))2yi
所以可以近似的得出
g′(γ)=xi∈Rjm∑1+exp(2yi(Fm−1(xi)+γ))−2yi=−y~i
g′′(γ)=xi∈Rjm∑[1+exp(2yi(Fm−1(xi)+γ))]24yi2(exp(2yi(Fm−1(xi)+γ))+1)−4yi2
=xi∈Rjm∑[[1+exp(2yi(Fm−1(xi)+γ))]2∗2yi2−yi2~]
由於yi取值爲+1或者-1,所以yi2=∣yi∣,所以有:
g′′(γ)=∣yi~∣(2−∣yi~∣)
二分類問題
最終我們求出F(x),那麼如何使用它進行分類呢:
F(x)=21log(1−pp)
稍微進行轉化可得
e2F(x)=1−pp
進一步轉換可得
P+(x)=p=1+e2F(x)e2F(x)=1+e−2F(x)1
P−(x)=1−p=1+e2F(x)1
最終實現二分類