二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...
本文始發于個人公眾號:TechFlow,原創不易,求個關注
今天是機器學習專題的第31篇文章,我們一起繼續來聊聊GBDT模型。
在上一篇文章當中,我們學習了GBDT這個模型在回歸問題當中的原理。GBDT最大的特點就是對于損失函數的降低不是通過調整模型當中已有的參數實現的,若是通過訓練新的CART決策樹來逼近的。也就是說是通過增加參數而不是調整參數來逼近損失函數最低點。
如果對于這部分不是很理解的話,可以通過下方的鏈接回顧一下之前的內容:
機器學習 | 詳解GBDT梯度提升樹原理,看完再也不怕面試了?mp.weixin.qq.com邏輯回歸損失函數
在我們開始GBDT模型原理的講解和推導之前,我們先來回顧一下邏輯回歸當中的相關公式和概念。
首先,我們先來寫出邏輯回歸的預測函數:
圖像畫出來是這樣的,其中的
表示表示了模型預測x這個樣本屬于類別1的概率。在二分類問題當中,只有0和1兩個類別, 兩個類別的概率只和為1。所以我們可以得到
。我們希望模型在y=0的時候,使得
盡量大,否則則使得盡量大,我們用指數的形式把兩者綜合寫出了它的損失函數L。這個值涉及到指數,計算起來不太方便,所以我們會對它求對數進行簡化。等式兩邊都取對數之后,可以得到:
這個就是邏輯回歸損失函數的由來。
GBDT二分類
我們將GBDT模型應用在二分類的場景當中的原理其實和邏輯回歸一樣,只不過在邏輯回歸當中
是一個線性函數,而在GBDT當中,,是一個加法模型。在GBDT的回歸問題當中,
就是GBDT產出的最后結果,而在二分類問題當中,我們還需要對這個結果加上一個sigmoid函數。我們令上面的為,所以模型可以表達為:我們把這個式子帶入邏輯回歸的損失函數當中,可以得到:
我們對損失函數計算負梯度,也即計算
對的偏導:這個負梯度也就是我們常說的殘差,這個殘差的結果和我們之前在回歸問題當中的推導結果非常近似。它表示預測概率和真實概率的概率差,這個殘差就是下一棵CART樹的訓練目標。
訓練過程
我們再把模型訓練的整個過程給整理一下,把所有的細節串聯起來。
首先我們先明確幾個參數,M表示決策樹的數量。
表示第m輪訓練之后的整體,即為最終輸出的GBDT模型。首先,我們創建第一棵回歸樹即,在二分類問題當中,它是先驗信息,所以:,p1表示**樣本中類別1的比例** $$i. 對于第2到第m棵回歸樹,我們要計算出每一棵樹的訓練目標, 也就是前面結果的殘差:ii. 對于當前第m棵子樹而言,我們需要遍歷它的可行的切分點以及閾值,找到最優的預測值c對應的參數,使得盡可能逼近殘差,我們來寫出這段公式:這里的指的是第m棵子樹所有的劃分方法中葉子節點預測值的集合,也就是第m棵回歸樹可能達到的預測值。其中j的范圍是1,2,3...J。
接著,我們更新,這里的I是一個函數,如果樣本落在了節點上,那么I=1,否則I=0。
多分類問題
二分類的問題解決了,多分類也并不困難,其實也只是二分類的一個簡單拓展。
我們假設樣本的類別數量是k,那么我們需要k個不同的樹集合來擬合每個類別的概率。我們寫出類別q的概率的公式:
softmax函數的損失函數為:
,雖然從公式里看這是一個求和值,但是對于多分類問題來說,只會有一個類別為1,其余均為0,所以只會有一項不為0,我們假設這一項為q。我們代入求出它的負梯度:可見在多分類問題當中,這k個樹集合同樣是擬合真實的樣本標簽與預測的概率的差值,本質上和二分類問題是一樣的。
總結
到這里,關于GBDT在分類場景當中的原理我們也介紹完了。其實整篇推倒下來,無論是過程和結果都和回歸問題大同小異。只不過由于分類問題用到了sigmoid函數,使得計算偏導以及殘差的過程稍稍復雜了一些,其他并沒有什么本質差別。
從今天的文章當中我們也可以看出來,GBDT模型適用的范圍很廣,回歸、二分類以及多分類問題都可以適用,是一個非常強大的模型。也正因此,它在深度學習興起之前一度非常流行,基于它也衍生出了許多的改進的版本和應用。比如XGboost,GBDT + LR等等。也因此在面試的時候經常會問到其中的問題,如果有準備面試的同學,建議一定要將原理吃透哦。
今天的文章到這里就結束了,如果喜歡本文的話,請來一波素質三連,給我一點支持吧(關注、轉發、點贊)。
- END -
總結
以上是生活随笔為你收集整理的二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lsqcurvefit拟合结果为复数_非
- 下一篇: python用类名直接调用方法_Pyth