不同于線性模型【數學描述:f(W*X +b)】是通過數據樣本學習各個特征的合適權重,加權后做出決策。決策樹會選擇合適特征并先做特征劃分后,再做出決策(也就是決策邊界是非線性的,這提高了模型的非線性能力)。

一、樹模型的概括

決策樹呈樹形結構,更通俗來講,樹模型的數學描述就是“分段函數”。如下一個簡單判別西瓜質量的決策樹模型示例(注:以下西瓜示例,數據隨機杜撰的,請忽略這么小的西瓜瓜~):

學習這樣樹模型的過程,簡單來說就是從有監督的數據經驗中學習一個較優的樹模型的結構:包含了依次地選擇特征、確定特征閾值做劃分的內部節點及最終輸出葉子節點的數值或類別結果。

1、我們首先要拿到一些有關西瓜的有監督數據(這些西瓜樣本已有標注高/低質量西瓜),并嘗試選用決策樹模型來學習這個劃分西瓜的任務。如下數據樣本示例:


二、樹模型的要素

從上述例子,我們可以將樹模型的學習可以歸到經典機器學習的4個要素:

樹模型通過結合這幾個要素,更快更好地劃分特征空間,得出比較準確的決策。如下對這幾個要素具體解析。

2.1 樹模型的結構

樹模型的結構也就是個分段函數,包含了 選定特征做閾值劃分(內部節點),以及劃分后賦值的分數或類別決策(葉子節點)。

2.1.1學習樹結構的過程

學習樹模型的關鍵在于依據某些學習目標/指標(如劃分準確度、信息熵、Gini不純度、均方誤差的增益量)去選擇當前最優的特征并對樣本的特征空間做非線性準確的劃分,如上面西瓜的例子選擇了一個特征做了一次劃分(一刀切),通常情況下僅僅一刀切的劃分準確度是不夠的,可能還要在前面劃分的樣本基礎上,繼續多劃分幾次(也就多個切分條件的分段函數,如 if a>300 且特征b>10 且特征c<100, then 決策結果1;),以達到更高的準確度(純度)。

但是,隨著切分次數的變多,樹的復雜度提高也就容易過擬合,相應每個切分出的小子特征空間的統計信息可能只是噪音。減少樹生長過程的過擬合的風險,一個重要的方法就是樹的剪枝,剪枝是一種正則化:由于決策樹容易對數據產生過擬合,即生長出結構過于復雜的樹模型,這時局部的特征空間會越分越“小”得到了不靠譜的“統計噪聲”。通過剪枝算法可以降低復雜度,減少過擬合的風險。

決策樹剪枝的目的是極小化經驗損失+結構損失,基本策略有”預剪枝“和”后剪枝“兩種策略:①預剪枝:是在決策樹生成過程中,限制劃分的最大深度、葉子節點數和最小樣本數目等,以減少不必要的模型復雜度;②后剪枝:是先從訓練集生成一棵完整的決策樹,然后用用驗證集自底向上地對非葉結點進行考察,若將該節點對應的子樹替換為葉子結點(剪枝)能帶來決策樹的泛化性能提升(即目標函數損失更小,常用目標函數如:loss = 模型經驗損失bias+ 模型結構損失α|T|, T為節點數目, α為系數),則將該子樹替換為葉子結點。

2.1.2 復雜樹結構的進階

實踐中可以發現,淺層的樹很容易欠擬合,而通過加深樹的深度,雖然可以提高訓練集的準確度,卻很容易過擬合。

這個角度來看,單個樹模型是比較弱的,且很容易根據特征選擇、深度等超參數調節各樹模型的多樣性。正因為這些特點,決策樹很適合通過結合多個的樹模型做集成學習進一步提升模型效果。

集成學習是結合一些的基學習器共同學習,來改進其泛化能力和魯棒性的方法,主流的有兩種集成思想:

  1. 并行方式(bagging):獨立的訓練一些基學習器,然后(加權)平均它們的預測結果。代表模型如:Random Forests

串行方式(boosting):一個接一個的(串行)訓練基學習器,每一個基學習器主要用來修正前面學習器的偏差。代表模型如:AdaBoost、GBDT及XGBOOST;(擴展:像基于cart回歸樹的GBDT集成方法,通過引入了損失函數的梯度去代替殘差,這個過程也類似局部的梯度下降算法)

樹模型天然具有非線性的特點,但與此有個缺陷,樹模型卻學習不好簡單的線性回歸!可以簡單構想下傳統決策樹表達 y=|2x|這樣規律,需要怎么做?如?if x=1,then 2; x =3, then 6 .....;這樣窮舉顯然不可能的。這里介紹下線性決策樹,其實原理也很簡單:把線性回歸加到決策樹的葉子節點里面(特征劃分完后,再用線性模型擬合做決策)。一個簡單線性樹模型用分段函數來表示如:if x >0, then 2x;代表模型有 linear decision tree, GBDT-PL等模型。

2.2 學習目標(目標函數)

上文有提到,樹模型的學習目標就是讓各組的劃分的準確率(純度)都比較高,減小劃分誤差損失(此處忽略了結構損失T)。能達成劃分前后損失差異效果類似的指標有很多:信息熵、基尼系數、MSE損失函數等等 都可以評估劃分前后的純度的增益 ,其實都是對分類誤差的一種衡量,不同指標也對應這不同類型的決策樹方法。

ID3決策樹的指標:信息增益(information gain) 信息增益定義為集合 D 的經驗熵 H(D) 與特征 A 給定條件下 D 的經驗條件熵 H(D|A) 之差,也就是信息熵減去條件信息熵,表示得知特征X的信息而使得Y的信息的不確定性減少的程度(信息增益越大,表示已知X的情況下, Y基本就確定了)。

使用信息增益做特征劃分的缺點是:信息增益偏向取值較多的特征。當特征的取值較多時,根據此特征劃分更容易得到純度更高的子集,因此劃分之后的熵更低,由于劃分前的熵是一定的,因此信息增益更大,因此信息增益比較偏向取值較多的特征。

信息增益比也就是信息增益除以信息熵,這樣可以減少偏向取值較多信息熵較大的特征。

相應的,使用信息增益比缺點是:信息增益比偏向取值較少的特征。綜上兩種指標,可以在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。

與信息熵一樣(信息熵 如下式)

基尼系數表征的也是事件的不確定性(不純度),也都可以看做是對分類誤差率的衡量

我們將熵定義式中的“-log(pi)”替換為 1-pi 也就是基尼系數,因為-log(pi)的泰勒近似展開第一項就是1-pi?;嵯禂岛唵蝸砜淳褪庆氐摹捌教姘妗?,在衡量分類誤差的同時,也簡化了大量計算。

(注:由于分類誤差為分段函數=1-max(p, 1-p) ,不便于微分計算,實際中也比較少直接用)

當Cart應用于回歸任務,平方誤差損失也就是Cart回歸樹的生長指標。

2.3 優化算法

確認學習目標,而依據這個指標去學習具體樹結構的方法(優化算法),基本上有幾種思路:

總結

樹模型也就是基于已知數據上, 通過以學習目標(降低各劃分節點的誤差率)為指導,啟發式地選擇特征去劃分特征空間,以各劃分的葉子節點做出較”優”的決策結果。所以,樹模型有非常強的非線性能力,但是,由于是基于劃分的局部樣本做決策,過深(劃分很多次)的樹,局部樣本的統計信息可能失準,容易過擬合。

本文章轉載微信公眾號@算法進階

上一篇:

一文歸納Ai數據增強之法

下一篇:

一文深度解讀模型評估方法
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費