文章《有監督模型的兩個最重要演算法點》中講到主要在於特徵學習與數值最佳化兩個點,最早的決策樹則集中在特徵學習這個部分。

① 決策樹

網上決策樹的教程很多,以下再進行傻瓜式剖析一下:

第一步,計算每個特徵的純度(純度可以理解成此變數能區分事件的程度,例如信用卡領域:具有集團業務的人,越是可信之人。集團業務這個特徵的純度就很高),不同樹的計算純度的方法很多(資訊增益等),

計算純度基礎理論都是good/bad,比值越大,特徵純度越大

第二步,最大特徵形成頂點,第二大特徵形成第二部分的葉子節點,最終形成樹狀結構,

可以理解成最終根據多個純度高的特徵組合

,判斷樣本是good或者bad,如下所示。

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

第三步,剪枝理論:減掉純度低(對結果不會有很大影響)的特徵,目的在於儘量減少特徵依賴的數量,防止過擬合。

決策樹是單一的

特徵學習

缺點:可能會對純度高的特徵非常依賴。導致人的行為變化,模型就會不穩定。因此,隨機森林出現解決這一問題。

② 隨機森林

隨機森林可以理解成N個決策樹的整合。每棵樹都是隨機(特徵,樣本數在總體樣本中隨機抽取)的。預測最終結果取N棵樹的平均。

隨機森林的每棵樹都不一樣,也保證不會對某些特徵的依賴。

缺點:依然只用了特徵學習,沒有用到數值最佳化,因此,GBDT出現。

③ GBDT

g boost原理就是所有弱分類器想加等於預測值,下一個弱分類器去擬合誤差函式對預測值的梯度。

這個梯度在gbdt中就是預測值和真實值差。

GBDT加入了簡單的數值最佳化思想(數學證明網上很多,這裡通俗解釋一下)。

不同於隨機森林所有樹的預測求均值,gbdt所有的樹的預測值加起來是最終的預測值,可以不斷接近真實值。

GBDT的思想可以用一個通俗的例子解釋,假如有個人30歲,

第一棵樹,我們首先用20歲去擬合,發現損失有10歲,

第二顆,這時我們用6歲去擬合剩下的損失,發現差距還有4歲,

第三顆,我們用3歲擬合剩下的差距,差距就只有一歲了。

三棵樹加起來為29歲,距離30最近。

目標函式:

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

第m顆樹的目標函式就是m顆相加。

下一顆樹都是用之前的殘差去擬合(例如上面歲數的例子)

以下截圖在t-1時刻進行的求導,即梯度提升的變數則是目標函式中t時刻fx,即t時刻需要預測的值

引用梯度提升樹(GBDT)原理小結 - 劉建平Pinard - 部落格園

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

求導等於0的極值即c=c,即argmin等式為0,損失函式求偏導後在最後有公式。

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

L(y,ft(x)=L(y,ft−1(x)+ht(x))最小。也就是說,本輪迭代找到決策樹,要讓樣本的損失儘量變得更小

由於每棵樹擬合的值不同,因此算出的Gini節點排序不同,每棵樹根結點,子節點會不同。

④ Xgboost

Xgboost更加有效應用了數值最佳化。

相比於gbdt,最重要是對損失函式

(預測值和真實值的誤差)

變得更復雜

目標函式依然是所有樹想加等於預測值。

損失函式如下,引入了一階導數,二階導數。:

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

為什麼會效果優呢?原因在於變換

單純從演算法角度,

一,加入正則項,防止過擬合。

二,xgboost引入二階導,下次擬合的不為y-fx,充分利用資訊。

導數等於0。,可以得到

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

下棵樹去擬合,相當於除以二階導,差別大的時候還要放大點需要擬合的值。為誤差大的加大權重

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

Xgboost迭代與gbdt一樣根據誤差建立下一個弱分類器,都是g boost的迭代方法,即下一棵樹擬合損失函式根據預測值求導的梯度。

——xgboost用以下分裂方法代替Gini

xgboost分裂採用先對某欄位對所有樣本排序

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

機器學習系列(3)從一棵決策樹到xgboost

理解成分母,錯分很少,分子,放大錯分大。

透過這個從左到右搜尋,錯分情況最少的點,最佳分裂點。

——

調參,遍歷法:學習速率,樹的顆樹,樹的深度,終節點可以有多少人,行抽樣,列抽樣比例

小結:決策樹的前世今生不過是從只是應用特徵學習,最終也加入了數值最佳化的部分。由於純粹的分類演算法,xgboost即包含有效的特徵學習,又包含有效的數值最佳化,因此成為了結構化資料大殺器。