決策樹是一種邏輯簡單的機器學習演算法,它是一種樹形結構,所以叫決策樹。
本文將介紹決策樹的基本概念、決策樹學習的 3 個步驟、3 種典型的決策樹演算法、決策樹的 10 個優缺點。
什麼是決策樹?
決策樹是一種解決分類問題的演算法,決策樹演算法採用樹形結構,使用層層推理來實現最終的分類。決策樹由下面幾種元素構成:
- 根節點:包含樣本的全集
- 內部節點:對應特徵屬性測試
- 葉節點:代表決策的結果
預測時,在樹的內部節點處用某一屬性值進行判斷,根據判斷結果決定進入哪個分支節點,直到到達葉節點處,得到分類結果。
這是一種基於 if-then-else 規則的有監督學習演算法,決策樹的這些規則透過訓練得到,而不是人工制定的。
決策樹是最簡單的機器學習演算法,它易於實現,可解釋性強,完全符合人類的直觀思維,有著廣泛的應用。
舉個例子:
上面的說法過於抽象,下面來看一個實際的例子。銀行要用機器學習演算法來確定是否給客戶發放貸款,為此需要考察客戶的年收入,是否有房產這兩個指標。領導安排你實現這個演算法,你想到了最簡單的線性模型,很快就完成了這個任務。
首先判斷客戶的年收入指標。如果大於20萬,可以貸款;否則繼續判斷。然後判斷客戶是否有房產。如果有房產,可以貸款;否則不能貸款。
這個例子的決策樹如下圖所示:
決策樹學習的 3 個步驟
特徵選擇
特徵選擇決定了使用哪些特徵來做判斷。在訓練資料集中,每個樣本的屬性可能有很多個,不同屬性的作用有大有小。因而特徵選擇的作用就是篩選出跟分類結果相關性較高的特徵,也就是分類能力較強的特徵。
在特徵選擇中通常使用的準則是:資訊增益。
決策樹生成
選擇好特徵後,就從根節點觸發,對節點計算所有特徵的資訊增益,選擇資訊增益最大的特徵作為節點特徵,根據該特徵的不同取值建立子節點;對每個子節點使用相同的方式生成新的子節點,直到資訊增益很小或者沒有特徵可以選擇為止。
決策樹剪枝
剪枝的主要目的是對抗「過擬合」,透過主動去掉部分分支來降低過擬合的風險。
3 種典型的決策樹演算法
ID3 演算法
ID3 是最早提出的決策樹演算法,他就是利用資訊增益來選擇特徵的。
C4.5 演算法
他是 ID3 的改進版,他不是直接使用資訊增益,而是引入“資訊增益比”指標作為特徵的選擇依據。
CART(Classification and Regression Tree)
這種演算法即可以用於分類,也可以用於迴歸問題。CART 演算法使用了基尼係數取代了資訊熵模型。
決策樹的優缺點
優點
- 決策樹易於理解和解釋,可以視覺化分析,容易提取出規則;
- 可以同時處理標稱型和數值型資料;
- 比較適合處理有缺失屬性的樣本;
- 能夠處理不相關的特徵;
- 測試資料集時,執行速度比較快;
- 在相對短的時間內能夠對大型資料來源做出可行且效果良好的結果。
缺點
- 容易發生過擬合(隨機森林可以很大程度上減少過擬合);
- 容易忽略資料集中屬性的相互關聯;
- 對於那些各類別樣本數量不一致的資料,在決策樹中,進行屬性劃分時,不同的判定準則會帶來不同的屬性選擇傾向;資訊增益準則對可取數目較多的屬性有所偏好(典型代表ID3演算法),而增益率準則(CART)則對可取數目較少的屬性有所偏好,但CART進行屬性劃分時候不再簡單地直接利用增益率盡心劃分,而是採用一種啟發式規則)(只要是使用了資訊增益,都有這個缺點,如RF)。
- ID3演算法計算資訊增益時結果偏向數值比較多的特徵。