【機器學習基礎】CART--分類迴歸樹完全解讀

杉杉不要bug發表於2019-05-07

CART樹全名是分類與迴歸樹,可用於分類或迴歸,是二叉樹,根據是否滿足某個條件將集合不斷二分。無論分類還是迴歸,其中心思想是找到最優切分變數和最優切分點,只不過在分類問題中用基尼指數最小化作為依據,在迴歸問題中用平方誤差最小化作為準則。接下來分別舉例說明兩種樹。

一、分類樹

先驗知識:基尼係數

基尼係數,又叫基尼不純度,表示樣本集合中被隨機選中的一個樣本被錯誤分類的概率,值越小表示被分錯的概率越小,基尼指數=被選中的概率*被分錯的概率,如下公式中, pk表示選中的樣本屬於k類別的概率,則這個樣本被分錯的概率是(1-pk)。

【機器學習基礎】CART--分類迴歸樹完全解讀
【機器學習基礎】CART--分類迴歸樹完全解讀

CART分類樹生成演算法

輸入:訓練資料集D,停止計算的條件;

輸出:CART決策樹;

根據訓練資料集,從根結點開始,遞迴地對每個結點進行以下操作,構建二叉決策樹:

1.設結點的訓練資料集為D,計算現有特徵對該資料集的基尼指數。此時,對每一個特徵A,對其可能取的每個值a,根據樣本點對A=a的測試為“是”或“否”將D分割成D1和D2兩部分,之後計算基尼指數。

2.在所有可能的特徵A以及它們所有可能的切分點a中,選擇基尼指數最小的特徵及其對應的切分點作為最有特徵與最優切分點。依照最優特徵與最優切分點,從現有結點生成兩個子節點,將訓練資料集按照特徵分配到兩個子節點中去

3.對兩個子結點遞迴地呼叫兩個子結點,將訓練資料集按特徵分配到兩個子節點中去。

4.生成CART決策樹。 演算法停止計算的條件是節點中的樣本個數小於閾值或者基尼指數小於閾值,或者沒有更多特徵可用於分類了。

舉個例子幫助理解

原始資料:

【機器學習基礎】CART--分類迴歸樹完全解讀
解答過程:
【機器學習基礎】CART--分類迴歸樹完全解讀
二、迴歸樹

CART迴歸樹生成演算法

【機器學習基礎】CART--分類迴歸樹完全解讀
對各個特徵找最優切分點,找最優切分點的依據就是按照這個切分原則,將集合分為兩部分,分別對兩部分的標籤取均值,作為預測值,計算兩部分的預測值與真實值之間的誤差平方總和,能使得這個誤差最小的,即為最優切分變數與最優切分點。

舉個例子幫助理解

原始資料:

【機器學習基礎】CART--分類迴歸樹完全解讀

用sklearn中的庫函式,限定最深深度為3,生成的CART迴歸樹如下圖:

【機器學習基礎】CART--分類迴歸樹完全解讀
過程詳解:

1.選擇第一個最優切分變數時,根據平方誤差最小原則,選擇6.5為切分點,和呼叫sklearn庫得到的決策樹根結點一致,並且此時的平方誤差值為19.11,與上圖中mse1.911相同。

【機器學習基礎】CART--分類迴歸樹完全解讀
2.以根結點的左分支對<6.5的集合再切分,再詳細寫一個,以便理解,
【機器學習基礎】CART--分類迴歸樹完全解讀
其他節點同理,當平方誤差值達到一定閾值,可以停止節點再切分。

參考資料:

非常感謝有這麼多願意分享的大佬,爭取做一個喜歡分享的小菜鳥

1.統計學習方法 李航

2.師兄的博文哈哈哈 juejin.im/post/5a16b2…

相關文章