一.簡介
決策樹學習是一種逼近離散值目標函數的方法,在這種方法中學習到的函數被表示為一棵決策樹。
二.決策樹的表示法
決策樹通過把實例從艮節點排列到某個葉子結點來分類實例,葉子結點即為實例所屬的分類。樹上的每一個結點指定了對實例的某個屬性的測試,並且該結點的每一個后繼分支對應於該屬性的一個可能值。分類實例的方法是從這棵樹的根節點開始,測試這個結點的屬性,然后按照給定實例的屬性值對應的樹枝向下移動。然后這個過程在以新結點的根的子樹上重復。
決策樹對應表達式:
四.基本的決策樹學習算法
1. ID3算法
通過自頂向下構造決策樹來進行學習。構造過程是從“哪一個屬性將在樹的根結點被測試?”這個問題開始的。為了回答這個問題,使用統計測試來確定每一個實例屬性單獨分類訓練樣例的能力。分類能力最好的屬性被選作樹的根結點的測試。然后為根節點屬性的每個可能值產生一個分支,並把訓練樣例排列到適當的分支之下。然后重復整個過程,用每個分支結點關聯的訓練樣例來選取在該點被測試的最佳屬性。這形成了對合格決策樹的貪婪搜索(greedy search),也就是算法從不回溯重新考慮原來的選。
專門用於學習布爾函數的ID3算法概要
ID3(Examples,Target_attribute,Attributes)
Examples即訓練樣例集。Target_attribute是這棵樹要測試的目標屬性。Attributes是除目標屬性外供學習到的決策樹測試的屬性列表。返回一棵能正確分類給定Examples的決策樹。
•如果Examples都為正,那么返回label=+的單結點樹Root
•如果Examples都為反,那么返回label=+的單結點樹Root
•如果Attributes為空,那么返回單結點樹Root,label=Examples中最普遍的Target_attribute的值
•否則開始
•A←Attributes中分類Examples能力最好的屬性
•Root的決策屬性←A
•對於A的每個可能值vi
•在Root下加一個新的分支對應測試A=vi
•令Examples vi為Examples中滿足A屬性值為vi的子集
•如果Examples vi為空
•在這個新分支下加一個葉子結點,結點的label=Examples中最普遍的Target_attribute值
•否則在這個新分支下加一個子樹ID3(Examples vi,Target_attribute,Attributes-{A})
•結束
•返回Root
2. 哪個屬性是最佳的分類屬性
熵(entropy):刻畫了任意樣例集的純度(purity)。
熵確定了要編碼集合S中任意成員(即以均勻的概率隨機抽出的一個成員)的分類所需要的最小二進制位數。
如果目標屬性具有c個不同的值,那么S相對c個狀態(c-wise)的分類的熵定義為:
Pi是S中屬於類別i的比例。
信息增益(information gain):一個屬性的信息增益就是由於使用這個屬性分割樣例而導致的期望熵降低。
Values(A)是屬性A所有可能值的集合,Sv 是S中屬性A的值為v的子集。
例如,假定S包含14個樣例-[9+,5-]。在這14個樣例中,假定正例中的6個和反例中的2個有Wind=Weak,其他的有Wind=Strong。由於按照屬性Wind分類14個樣例得到的信息增益可以計算如下。
Values(Wind)=Weak,Strong
S=[9+,5-]
SWeak←[6+,2-]
Sstrong←[3+,3-]
=Entropy(S)-(8/14)Entropy(SWeak)-(6/14)Entropy(Sstrong)
=0.940-(8/14)0.811-(6/14)1.00
=0.048
3.舉例
- 首先計算四個屬性的信息增益:
Gain(S,Outlook)=0.246
Gain(S,Humidity)=0.151
Gain(S,Wind)=0.048
Gain(S,Temperature)=0.029
根據信息增益標准,屬性Outlook在訓練樣例上提供了對目標屬性PlayTennis的最佳預測。
Ssunny ={D1,D2,D8,D9,D11}
Gain(Ssunny,Humidity)=0.970-(3/5)0.0-(2/5)0.0=.970
Gain(Ssunny, Temperature)=0.970-(2/5)1.0-(2/5)1.0-(1/5)0.0=.570
Gain(Ssunny ,Wind)=0.970-(2/5)1.0-(3/5).918=.019
五.決策樹學習中的假設空間搜索
ID3算法中的假設空間包含所有的決策樹,它是關於現有屬性的有限離散值函數的一個完整空間。
當變了決策樹空間時,ID3僅維護單一的當前假設。
基本的ID3算法在搜索中不進行回溯。
ID3算法在搜索的每一步都使用當前的所有訓練樣例,以統計為基礎覺得怎樣簡化以前的假設。
關於C4.5決策樹 可以參考 http://www.cnblogs.com/zhangchaoyang/articles/2842490.html