決策樹(decision tree)是一種基本的分類與回歸方法,本文主要討論用于分類的決策樹。決策樹模型呈樹形結構,在分類問題中,表示基于特征對實例進行分類的過程。它可以認為是if-then規則的集合,也可以認為是定義在特征空間與類空間上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹學習通常包括三個步驟:特征選擇,決策樹的生成和決策樹的修剪。而隨機森林則是由多個決策樹所構成的一種分類器,更準確的說,隨機森林是由多個弱分類器組合形成的強分類器。
本文將先對決策樹特征選擇的算法ID3, C4.5和CART進行計算,然后介紹決策樹的剪枝策略,最后介紹隨機森林。
預備知識
條件熵
在信息論中,條件熵描述了在已知第二個隨機變量X的前提下,隨機變量Y的信息熵還剩多少?;赬條件的Y的信息熵,用H(Y|X)表示。
如果H(Y|X=x)為變數Y在變數X取特定值x條件下的熵,那么H(Y|X)就是H(Y|X=x)在X取遍所有可能的x后取平均的結果。
我們可以借助上圖來幫助理解熵和條件熵:紅色的整個圓表示變量X的熵,藍色的整個圓表示變量Y的熵。
首先,熵可以理解為事件的不確定性,聯系到上面的X, Y就是H(X)表示的是未知的不確定的X(也即紅色的圓),而藍色的則表示未知不確定的Y,而條件熵表示的是在知道某一事件后對另一事件未知性的減少(前提是這兩個事件有交集)。放在上面則是知道確定了X后Y的不確定性還剩多少,也就是右側藍色的圓減去兩個圓交叉的部分后剩余的,這就是條件熵H(Y|X)。
現在理解了條件熵,那么兩事件X, Y中間的交集互信息該如何理解呢?既然條件熵是知曉了X后Y未知性還剩余的多少,那么互信息就可以理解為知曉了事件X后Y事件有多少也是可以確定的,也即X對Y造成的干擾部分,即為互信息I(X; Y)。
而聯合熵就比較好理解了,就是事件X未知性和事件Y的未知性之和減去他們的交集部分。
首先需要知道的是熵的公式:
(1)P(xi)表示事件xi的概率;
(2)-P(xi)logP(xi)表示事件xi的熵;
條件熵的推導公式如下:
決策樹生成算法
決策樹分類從根節點開始,對實例的某一特征進行測試,根據測試結果將實例分配到其子節點。每一個子節點對應著該特征的一個取值。如此遞歸地對實例進行測試并分配,直至達到葉節點,最后將實例分配到葉節點的類中。
決策樹學習的算法通常是一個遞歸地選擇最優特征,并根據該特征對訓練數據進行劃分。如果利用一個特征進行分類的結果與隨機分類的結果沒有很大差別,則稱這個特征是沒有分類能力的。通常特征選擇的準則是信息增益或信息增益比,特征選擇的常用算法有ID3,C4.5,CART。
信息增益
信息增益表示得知特征A的信息而使得數據X的信息的不確定性的程度。
信息增益定義:特征A對訓練數據集D的信息增益g(D, A)定義為集合D的經驗熵H(D)與給定特征A的條件下D的經驗條件熵H(D|A)之差,即:
根據信息增益選擇特征的方法是:對于給定數據集D,計算其每個特征的信息增益,并比較他們的大小,選擇信息增益最大的特征。使用信息增益選擇特征的算法稱為C3算法。
基本記號:信息增益的計算方法:
信息增益比
信息增益值的大小是相對于訓練數據集而言的,并沒有絕對意義。在分類為題困難時,也就是說在訓練數據集的經驗熵大的時候,信息增益值會偏大。反之,信息增益值會偏小。因此,使用信息增益比可以對這一問題進行校正,這是另一種特征選擇算法,也即C4.5算法。
信息增益比定義:特征A對訓練數據集D的信息增益比gR(D, A)定義為其信息增益g(D, A)與訓練集D的經驗熵之比:
基尼指數
基尼指數是CART分類樹用來選擇最優特征的算法,同時決定了該特征的最優二值切分點。
定義:假設有K個類,樣本點屬于第k類的概率為pk,則概率分布的基尼指數定義:
對于給定的樣本集合D,其基尼指數為:
這里,Ck是D中屬于第k類的樣本子集,K是類的個數。
一個特征的信息增益/基尼系數越大,表明特征對樣本的熵減少的能力更強,這個特征使得數據由不確定性變成確定性的能力越強。
決策樹的剪枝
決策樹生成算法產生的決策樹對于訓練數據的分類往往很準確,但對于未知數據的分類卻沒有這么準確,即容易出現過擬合情況。解決的辦法便是考慮樹的復雜度,對已生成的樹進行剪枝簡化。
決策樹的剪枝往往通過極小化決策樹整體的損失函數來實現。
設樹T的葉節點個數為|T|,t是樹T的葉節點,該葉節點有Nt個樣本點,其中k類的樣本點有Ntk個,k=1,2,3...K, Ht(T)為葉節點t上的經驗熵, α>=0為參數,則決策樹學習的損失函數可以定義為:
損失函數中C(T)表示模型對訓練數據的預測誤差,也即擬合程度。|T|表示模型復雜度,即節點越多模型越復雜,使用參數α來控制兩者之間的影響。α越大模型越簡單,對數據擬合差;α越小模型越復雜,對數據擬合性好;α=0時則不考慮模型復雜度。
因此,剪枝就是在確定了α時,選擇損失函數最小的樹。
隨機森林
參考:
《統計學習方法》李航
機器學習. 鄒博