決策樹的原理推導

2021-10-06 12:32:08 字數 3238 閱讀 7751

決策樹可以作為分類演算法,也可以作為回歸演算法,同時特別適合整合學習比如隨機森林。

2023年昆蘭找到了用資訊理論中的熵來度量決策樹的決策選擇過程,昆蘭把這個演算法叫做id3。

熵度量了事物的不確定性,越不確定的事物,熵就越大。隨機變數x的熵的表示式如下:

其中n代表x的n種不同的離散取值。而pi

代表了x取值為i的概率,log為以2或者e為底的對數。舉個例子,比如x有2個可能的取值,而這兩個取值各為1/2時x的熵最大,此時x具有最大的不確定性。值為

熟悉了乙個變數x的熵,很容易推廣到多個變數的聯合熵,這裡給出兩個變數x和y的聯合熵表示式:

有了聯合熵,又可以得到條件熵的表示式h(x|y),條件熵類似於條件概率,它度量了我們的x在知道y以後剩下的不確定性。表示式如下: 

h(x)度量了x的不確定性,條件熵h(x|y)度量了我們在知道y以後x剩下的不確定性,h(x)-h(x|y)度量了x在知道y以後不確定性減少程度,這個度量我們在資訊理論中稱為互資訊,記為i(x,y)。在決策樹id3演算法中叫做資訊增益。資訊增益大,則越適合用來分類。

用下面這個圖很容易明白他們的關係。左邊的橢圓代表h(x),右邊的橢圓代表h(y),中間重合的部分就是我們的互資訊或者資訊增益i(x,y), 左邊的橢圓去掉重合部分就是h(x|y),右邊的橢圓去掉重合部分就是h(y|x)。兩個橢圓的並就是h(x,y)。

id3演算法思想:用資訊增益最大的特徵來建立決策樹的當前節點。下面是乙個具體例子。

15個樣本d,其中9個輸出為1,6個輸出為0。樣本中有特徵a,取值為a1,a2,a3。在取值為a1的樣本的輸出中,有3個輸出為1,2個輸出為0,取值為a2的樣本中,2個輸出為1,3個輸出為0,在取值為a3的樣本中,4個輸出為1,1個輸出為0。

樣本d的熵為:

樣本d在特徵下的條件熵為:

對應的資訊增益為:

這裡只有乙個特徵a,當有多個特徵時,選擇資訊增益最大的特徵作為節點特徵,由該特徵的不同取值最為子節點,以此類推,構建決策樹。 

已知:輸入的是m個樣本,樣本輸出集合為d,每個樣本有n個離散特徵,特徵集合即為a,輸出為決策樹t。

具體演算法過程:

初始化資訊增益的閾值ε

判斷樣本是否為同一類輸出di,如果是則返回單節點樹t。標記類別為di

判斷特徵是否為空,如果是則返回單節點樹t,標記類別為樣本中輸出類別d例項數最多的類別

計算a中的各個特徵(一共n個)對輸出d的資訊增益,選擇資訊增益最大的特徵ag

如果ag的資訊增益小於閾值ε,則返回單節點樹t,標記類別為樣本中輸出類別d例項數最多的類別。

否則,按特徵ag的不同值agi將對應的樣本輸出d分成不同的類別di。每個類別產生乙個子節點。對應特徵值為agi。返回增加了節點的數t。

對於所有子節點,令d = di ,a = a- 遞迴呼叫2-6步,得到子樹ti並返回。

具體例項見:

4. 決策樹c4.5演算法對id3的改進

針對id3演算法4個主要的不足,一是不能處理連續特徵,二是用資訊增益作為標準容易偏向取值較多的特徵,最後是缺失值處理的問題和過擬合問題。

(1)、對不能處理連續值特徵,c4.5思路:將連續的特徵離散化。

將m個連續樣本從小到大排列。(比如 m 個樣本的連續特徵a有 m 個,從小到大排列 a1,a2,......am)

取相鄰兩樣本值的平均數,會得m-1個劃分點。(其中第i個劃分點ti表示為:

對於這m-1個點,分別計算以該點作為二元分類點時的資訊增益。選擇資訊增益最大的點作為該連續特徵的二元離散分類點。(比如取到的增益最大的點為at,則小於at的值為類別1,大於at的值為類別2,這樣就做到了連續特徵的離散化。注意的是,與離散屬性不同,如果當前節點為連續屬性,則該屬性後面還可以參與子節點的產生選擇過程。)

用資訊增益比選擇最佳劃分。

注意:選擇連續特徵的分類點採用資訊增益這個指標,因為若採用增益比,影響**點資訊度量準確性,若某分界點恰好將連續特徵分成數目相等的兩部分時其抑制作用最大,而選擇屬性的時候才使用增益比,這個指標能選擇出最佳分類特徵。

(2)、對於資訊增益作為標準容易偏向於取值較多特徵的問題。引入乙個資訊增益比 ir(y, x),它是資訊增益與特徵熵(也稱**資訊)的比。表示式:

其中d為樣本特徵輸出的集合,a為樣本特徵,對於特徵熵 ha(d),表示式:

其中n為特徵a的類別數,|di|為特徵a的第i個取值對應的樣本個數。|d|為樣本個數。

特徵數越多的特徵對應的特徵熵越大,它作為分母,可以校正資訊增益容易偏向於取值較多的特徵的問題。

(3)、對於缺失值處理的問題,主要需要解決的是兩個問題,一是在樣本某些特徵缺失的情況下選擇劃分的屬性,二是選定了劃分屬性,對於在該屬性上缺失特徵的樣本的處理。

對於第乙個子問題,對於某乙個有缺失特徵值的特徵a。c4.5的思路是將資料分成兩部分,對每個樣本設定乙個權重(初始可以都為1),然後劃分資料,一部分是有特徵值a的資料d1,另一部分是沒有特徵a的資料d2. 然後對於沒有缺失特徵a的資料集d1來和對應的a特徵的各個特徵值一起計算加權重後的資訊增益比,最後乘上乙個係數,這個係數是無特徵a缺失的樣本加權後所佔加權總樣本的比例。

對於第二個子問題,可以將缺失特徵的樣本同時劃分入所有的子節點,不過將該樣本的權重按各個子節點樣本的數量比例來分配。比如缺失特徵a的樣本a之前權重為1,特徵a有3個特徵值a1,a2,a3。 3個特徵值對應的無缺失a特徵的樣本個數為2,3,4.則a同時劃分入a1,a2,a3。對應權重調節為2/9,3/9, 4/9。

5. 決策樹c4.5演算法的不足與改進

(1)、決策樹演算法非常容易過擬合,因此對於生成的決策樹要進行剪枝。c4.5的剪枝方法有優化的空間。思路主要是兩種,一種是預剪枝,即在生成決策樹的時候就決定是否剪枝。另乙個是後剪枝,即先生成決策樹,再通過交叉驗證來剪枝。後面在下篇講cart樹的時候我們會專門講決策樹的減枝思路,主要採用的是後剪枝加上交叉驗證選擇最合適的決策樹。

(2)、c4.5生成的是多叉樹,在計算機中二叉樹模型會比多叉樹運算效率高。多叉樹改二叉樹,可以提高效率。

(3)、c4.5只能用於分類。

(4)、c4.5由於使用了熵模型,裡面有大量的耗時的對數運算,如果是連續值還有大量的排序運算。如果能夠加以模型簡化減少運算強度但又不犧牲太多準確性的話,因此用基尼係數代替熵模型。

決策樹 公式推導

目錄決策樹中涉及到了資訊熵 資訊增益 資訊增益率 基尼係數等公式,作為相應演算法 id3 c4.5 cart樹 的衡量標準,今天就來稍微推導一下這些公式 已知集合d的資訊熵的定義為 operatorname d sum p log p 其中,mathcal 表示樣本類別總數,p k 表示第k類樣本所...

決策樹01 決策樹的原理

此筆記根據 machine learning in action 和周志華教授的 機器學習 所作。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型 machine learning in action if so return 類標籤 else 尋找劃分資料集的最好特徵 劃分資料集 建立分...

決策樹原理

目錄 決策樹基本知識 id3 與c4.5 cart 應用 1.我們遇到的選擇都是根據以往的選擇判斷,如果把判斷背後的邏輯整理成乙個結構圖,會是乙個樹狀圖,就是決策樹的本質.2.決策樹的階段 構造與剪枝 構造 選擇什麼屬性作為結點 1 根節點 樹的頂端 2 內部節點 中間節點 3 葉節點 決策節點 剪...