版權聲明:本文爲博主原創文章,未經博主允許不得轉載https://blog.csdn.net/pxhdky/article/details/84203421
在上一篇博客【機器學習】決策樹詳解(ID3、C4.5)中,我們詳細描述了決策樹的原理、劃分準則、生成、剪枝、連續值處理、缺失值處理,這篇博客我們主要講述決策樹算法中的CART算法。
1. CART算法
分類與迴歸樹(Classification and regression tree,CART)模型既可用於分類,也可用於迴歸。
CART假設決策樹是二叉樹,內部結點特徵的取值爲“是”和“否”,左分支是取值爲“是”的分支,右分支是取值爲“否”的分支,這樣的決策樹等價於遞歸地二分每個特徵,將輸入空間即特徵空間劃分爲有限個單元,並在這些單元上確定預測的概率分佈,也就是在輸入給定的條件下輸出的條件概率分佈。
2. CART生成
CART生成就是遞歸地構建二叉決策樹的過程,對迴歸樹用平方誤差最小化準則,對決策樹用基尼係數最小化準則,進行特徵選擇,生成二叉樹。
與ID3和C4.5不同的是,CART構建的是二叉樹,所以在劃分選擇時,ID3和C4.5只需要選擇最優劃分特徵,而CART不僅需要選擇最優劃分特徵,還需要選擇特徵的最優劃分點。
一棵迴歸樹對應着輸入空間的一個劃分以及在劃分單元上的輸出值。假設已經把輸入空間劃分爲個單元,並且在每個單元上有一個固定的輸出值。於是迴歸樹模型可以表示爲:
(1)
其中,。
當輸入空間的劃分確定時,可以用平方誤差來表示迴歸樹對於訓練數據的預測誤差,用平方誤差最小的準則求解每個單元上的最優輸出值。
對於一個固定的切分變量,切分點按照特徵的值將輸入空間劃分爲兩個區域,。如果是連續特徵,則將輸入空間劃分爲和。如果是離散特徵,則將輸入空間劃分爲 和。
2.1迴歸樹生成
爲了尋找最優切分變量和最優切分點,需要遍歷所有變量,並對每一個切分變量掃描其所有切分點,找到該變量的最優切分點,以構成對。然後在所有的對中找到最優的對,也就是求解以下公式:
(2)
找到最優切分變量和最優切分點之後,區域、的最優輸出值就是上所有輸入樣本對應的輸出的均值,即:
(3)
接下來,對每個區域都重複上述劃分過程,直到滿足停止條件爲止,這樣就生成了一棵迴歸樹。這樣的迴歸樹通常稱爲最小二乘迴歸樹(最小二乘迴歸樹)。
2.2分類樹生成
分類樹和迴歸樹唯一的區別在於,分類樹採用基尼係數作爲劃分準則,對的求解公式也就變成了:
(4)
3. CART算法流程
輸入:訓練集,特徵集,閾值。
過程:函數
1.生成結點;
2.如果中樣本全部具有相同輸出值,則置的輸出值爲;並返回;
3.如果或者中所有樣本在上取值都相同,則將置爲葉結點,其輸出爲中樣本數最多的類或者中所有樣本的平均值,返回;
4. (與上篇中提到的ID3和C4.5相比,只有這一步有區別)否則,遍歷中所有變量,並對每一個切分變量掃描所有其切分點,將輸入空間劃分爲兩個區域,,找到該變量的最優切分點,構成一個對。然後在所有的對中找到最優的對。
(1)對於迴歸樹而言,求解:
根據選定的最優劃分兩個子區域,並決定相應的輸出值:
(2)對於分類樹而言,求解:
根據選定的最優劃分兩個子區域,並將類別標記爲其樣本數最多的類。
5.如果特徵的不確定性提升(如信息增益,信息增益比)小於閾值,則將置爲葉結點,返回;
6.否則,每個子區域對應構建一個子結點,其輸出爲樣本數最多的類或者所有樣本的平均值,返回結點及其子結點構成的樹;
7.最後,對兩個分支結點,以爲訓練集,爲特徵集,遞歸調用,得到子樹,其並將結合到上。
輸出:一棵以爲根結點的迴歸樹或者分類樹。
參考文獻:
1.《統計學習方法》第五章決策樹——李航