【機器學習基礎】GBDT 與 LR 的區(qū)別總結
作者:杜博亞,阿里算法工程師,復旦大學計算機碩士,BDKE 之光。
1.從機器學習三要素的角度
1.1 模型
本質上來說,他們都是監(jiān)督學習,判別模型,直接對數(shù)據(jù)的分布建模,不嘗試挖據(jù)隱含變量,這些方面是大體相同的。但是又因為一個是線性模型,一個是非線性模型,因此其具體模型的結構導致了VC維的不同:其中,Logistic Regression作為線性分類器,它的VC維是d+1,而 GBDT 作為boosting模型,可以無限分裂,具有無限逼近樣本VC維的特點,因此其VC維遠遠大于d+1,這都是由于其線性分類器的特征決定的,歸結起來,是Logistic Regression對數(shù)據(jù)線性可分的假設導致的
1.2 策略
從 Loss(經驗風險最小化) + 正則(結構風險最小化) 的框架開始說起;
「從Loss的角度:」
因為 Logistic Regression 的輸出是 y = 1 的概率,所以在極大似然下,Logistic Regression的Loss是交叉熵,此時,Logistic Regression的準則是最大熵原理,也就是“為了追求最小分類誤差,追求最大熵Loss”,「本質上是分類器算法,而且對數(shù)據(jù)的噪聲具有高斯假設」;而 GBDT 采用 CART 樹作為基分類器,其無論是處理分類還是回歸均是將采用回歸擬合(將分類問題通過 softmax 轉換為回歸問題,具體可參考本博客 GBDT 章節(jié)),用當前輪 CART 樹擬合前一輪目標函數(shù)與實際值的負梯度:,「本質上是回歸算法」。
?也正是因為 GBDT 采用的 CART 樹模型作為基分類器進行負梯度擬合,其是一種對特征樣本空間進行劃分的策略,不能使用 SGD 等梯度優(yōu)化算法,而是 CART 樹自身的節(jié)點分裂策略:均方差(回歸) 也帶來了算法上的不同;GBDT 損失函數(shù)值得是前一輪擬合模型與實際值的差異,而樹節(jié)點內部分裂的特征選擇則是固定為 CART 的均方差,目標損失函數(shù)可以自定義,當前輪 CART 樹旨在擬合負梯度。
?
「從特征空間的角度:」就是因為 Logistic Regression 是特征的線性組合求交叉熵的最小化,也就是對特征的線性組合做 logistic,使得Logistic Regression會在特征空間中做線性分界面,適用于分類任務;
而 GBDT 采用 CART 樹作為基分類器,其每輪樹的特征擬合都是對特征空間做平行于坐標軸的空間分割,所以自帶特征選擇和可解釋性,GBDT 即可處理分類問題也可解決回歸問題,只是其統(tǒng)一采用回歸思路進行求解(試想,如果不將分類轉換為回歸問題,GBDT 每輪目標函數(shù)旨在擬合上一輪組合模型的負梯度,分類信息無法求梯度,故而依舊是采用 softmax 轉換為回歸問題進行求解)。
?「線性分類器」(處理線性可分)有三大類:「感知器準則函數(shù)、SVM、Fisher準則」。
「感知準則函數(shù)」 :準則函數(shù)以使錯分類樣本到分界面距離之和最小為原則。其優(yōu)點是通過錯分類樣本提供的信息對分類器函數(shù)進行修正,這種準則是人工神經元網絡多層感知器的基礎。
「支持向量機」 :基本思想是在兩類線性可分條件下,所設計的分類器界面使兩類之間的間隔為最大,它的基本出發(fā)點是使期望泛化風險盡可能小。(使用核函數(shù)可解決非線性問題)
「Fisher 準則」 :更廣泛的稱呼是線性判別分析(LDA),將所有樣本投影到一條原點出發(fā)的直線,使得同類樣本距離盡可能小,不同類樣本距離盡可能大,具體為最大化“廣義瑞利商”。根據(jù)兩類樣本一般類內密集,類間分離的特點,尋找線性分類器最佳的法線向量方向,使兩類樣本在該方向上的投影滿足類內盡可能密集,類間盡可能分開。這種度量通過類內離散矩陣 Sw 和類間離散矩陣 Sb 實現(xiàn)。
?
「從正則的角度:」
Logistic Regression 的正則采用一種約束參數(shù)稀疏的方式,其中 L2 正則整體約束權重系數(shù)的均方和,使得權重分布更均勻,而 L1 正則則是約束權重系數(shù)絕對值和,其自帶特征選擇特性;
GBDT 的正則:
弱算法的個數(shù)T,就是迭代T輪。T的大小就影響著算法的復雜度 步長(Shrinkage)在每一輪迭代中,原來采用進行更新,可以加入步長v,使得一次不更新那么多:
?XGBoost的正則是在 GBDT 的基礎上又添加了是一棵樹里面節(jié)點的個數(shù),以及每個樹葉子節(jié)點上面輸出分數(shù)的 L2 模平方。
?
區(qū)別在于 LR 采用對特征系數(shù)進行整體的限定,GBDT 采用迭代的誤差控制本輪參數(shù)的增長;
1.3 算法
Logistic Regression 若采用 SGB, Momentum, SGD with Nesterov Acceleration 等算法,只用到了一階導數(shù)信息(一階動量),若用 AdaGrad, AdaDelta / RMSProp, Adam, Nadam 則用到了一階導數(shù)的平方(二階動量), 牛頓法則用到了二階導數(shù)信息,
而 GBDT 直接擬合上一輪組合函數(shù)的特征梯度,只用到了一階倒數(shù)信息,XGBoost 則是用到了二階導數(shù)信息。
?SAG/SAGA等優(yōu)化器在scikit-learn上可用,但是業(yè)界用得比較多的還是BGFS,L-BGFS等,個人認為是計算量的原因,Logistic Regression模型很快就可以收斂,在線性可分的空間中也不容易出現(xiàn)鞍點,而且一般用Logistic Regression模型的數(shù)據(jù)量都比較大,大到不能上更復雜的模型,所以優(yōu)化方法一般都是往計算量小的方向做。
?
2.從特征的角度
2.1 特征組合
如前所說,GBDT 特征選擇方法采用最小化均方損失來尋找分裂特征及對應分裂點,所以自動會在當前根據(jù)特征 A 分裂的子樹下尋求其他能使負梯度最小的其他特征 B,這樣就自動具備尋求好的特征組合的性能,因此也能給出哪些特征比較重要(根據(jù)該特征被選作分裂特征的次數(shù))
而 LR 只是一次性地尋求最大化熵的過程,對每一維的特征都假設獨立,因此只具備對已有特征空間進行分割的能力,更不會對特征空間進行升維(特征組合)
2.2 特征的稀疏性
如前所述,Logistic Regression不具有特征組合的能力,并假設特征各個維度獨立,因此只具有線性分界面,實際應用中,多數(shù)特征之間有相關性,只有維度特別大的稀疏數(shù)據(jù)中特征才會近似獨立,所以適合應用在特征稀疏的數(shù)據(jù)上。而對于 GBDT,其更適合處理稠密特征,如 GBDT+LR 的Facebook論文中,對于連續(xù)型特征導入 GBDT 做特征組合來代替一部分手工特征工程,而對于 ID 類特征的做法往往是 one-hot 之后直接傳入 LR,或者先 hash,再 one-hot 傳入樹中進行特征工程,而目前的主流做法是直接 one-hot + embedding 來將高維稀疏特征壓縮為低緯稠密特征,也進一步引入了語意信息,有利于特征的表達。
3.數(shù)據(jù)假設不同
邏輯回歸的「第一個」基本假設是**假設數(shù)據(jù)服從伯努利分布。**伯努利分布有一個簡單的例子是拋硬幣,拋中為正面的概率是 p,拋中為負面的概率是 1?p。在邏輯回歸這個模型里面是假設 為樣本為正的概率, 為樣本為負的概率。那么整個模型可以描述為:
邏輯回歸的第二個假設是假設樣本為正的概率是 :
所以邏輯回歸的最終形式 :
總結,Logistic Regression的數(shù)據(jù)分布假設:
噪聲是高斯分布的 數(shù)據(jù)服從伯努利分布 特征獨立
而 GBDT 并未對數(shù)據(jù)做出上述假設。
往期精彩回顧
本站知識星球“黃博的機器學習圈子”(92416895)
本站qq群704220115。
加入微信群請掃碼:
