機器學習 -- 決策樹算法

分類:IT技術 時間:2017-05-14

1. 決策樹

決策樹是附加概率結果的一個樹狀的決策圖,是直觀地運用統計概率分析的圖法。機器學習中決策樹是一個預測模型,它表示對象屬性和對象值之間的一種映射,樹中的每一個節點表示對象屬性的判斷條件,其分支表示符合節點條件的對象。樹的葉子節點表示對象所屬的預測結果。

1.1 決策樹的案例

通俗來說,決策樹分類的思想類似於找對象。現想象一個女孩的母親要給這個女孩介紹男朋友,這個女孩的決策是否去見面的過程就是典型的分類樹決策。通過年齡、長相、收入和是否公務員對決策結果分為兩個類別:見和不見。假設這個女孩對男人的要求是:30歲以下、長相中等以上並且是高收入或中等收入的公務員,那麽可以用下圖表示女孩的決策邏輯:

這幅圖基本可以算是一顆決策樹,說它基本可以算,是因為圖中的判斷條件沒有量化,如收入高中低等等,不能算是嚴格意義上的決策樹,如果將所有條件量化,則變成真正的決策樹了。

1.2 決策樹建立

選擇一個合適的特征作為判斷節點,可以快速地分類,減少決策樹的深度。決策樹的目標就是把數據集按對應的類標簽進行分類。最理想的情況是,通過特征的選擇能把不用類別的數據集貼上對應類標簽。特征選擇的目標使得分類後的數據集比較純。如何衡量一個數據集純度,這裏需要引入數據純度函數。信息熵是可以表示數據純度的函數。

1.3 決策樹的算法

構造決策樹的關鍵性內容是進行屬性選擇度量,屬性選擇度量是一種選擇分裂準則,是將給定的類標記的訓練集合的數據劃分。屬性選擇度量算法很多,一般使用自頂
而下遞歸分治法,並采用不回溯的貪心策略。這裏介紹ID3和C4.5算法。

1.3.1 ID3算法

信息增益

信息熵表示的是不確定度。均勻分布時,不確定度最大,此時熵最大。當選擇某個特征對數據集進行分類時,分類後的數據集信息熵會比分類前的小,其差值表示為信息增益。信息增益可以衡量某個特征對分類結果的影響大小。

假設在樣本數據集D中,混有C中類別的數據。構建決策樹時,根據給定的樣本數據集選擇某個特征值作為樹的節點。在數據集中,可以計算出該數據的信息熵:

其中D表示訓練數據集,m表示數據類別數,Pi表示類別i樣本數量占所有樣本的比例。

對應數據集D,選擇特征A作為決策樹判斷節點時,在特征A作用後的信息熵為InfoA(D),計算如下:

而信息增益即為兩者的差值:

總結:對於決策樹節點最合適的特征選擇,就是gain(A)值最大的特征。

ID3算法就是在每次需要分裂時,計算每個屬性的增益率,然後選擇增益率最大的屬性進行分裂。下面我們繼續用某社區不真實檢測的例子說明如何使用ID3算法構造決策樹。為了簡單起見,我們假設訓練集合包含3個元素:

日誌密度 好友密度 是否使用真實頭像 賬號是否真實
s s no no
s l yes yes
l m yes yes
m m yes yes
l m yes yes
m l no yes
m s no no
l m no yes
m s no yes
s s yes no

其中,s、m、l分別代表小、中、大。 設L、F、H和R表示日誌密度、好友密度、是否使用真實頭像和賬號是否真實

該數據的信息熵 :

對應數據集D,選擇特征日誌密度作為決策樹判斷節點時,在特征日誌密度作用後的信息熵為InfoL(D),計算如下:

因此日誌密度的信息增益是0.276:

用同樣方法得到H和F的信息增益分別為0.033和0.553。

因此F具有最大的信息增益,所以第一次分裂選擇F作為分裂屬性,分裂後的結果如下圖表示:

在上圖的基礎上,再遞歸使用這個方法計算子節點的分裂屬性,最終就可以得出整棵決策樹。

1.3.2 C4.5算法

ID3算法存在一個問題,就是偏向於多值屬性,例如,如果存在唯一標識屬性ID,則ID3會選擇它作為分裂屬性,這樣雖然使得劃分充分純凈,但這種劃分對分類幾乎毫無用處。ID3的後繼算法C4.5使用增益率(gain ratio)的信息增益擴充,試圖克服這個偏倚。

C4.5算法首先定義了"分裂信息",其定義可以表示成:

 其中各符號意義與ID3算法相同,然後增益率被定義為:

C4.5選擇具有最大增益率的屬性作為分裂屬性,其具體應用與ID3類似,不再贅述。

1.4 關於剪枝

在分類模型建立的過程中,很容易出現過擬合的現象。過擬合是指在模型學習訓練中,訓練樣本達到非常高的逼近精度,但對校驗樣本的逼近誤差隨著訓練次數而呈現先下降後上升的現象。過擬合時訓練誤差很小,但是檢驗誤差很大,不利於實際應用。

決策樹的過擬合現象可以通過剪枝進行一定的修復。剪枝分為預先剪枝和後剪紙兩種。

預先剪枝指在決策樹生長過程中,使用一定條件加以限制,使得產生完全擬合的決策樹之前就停止生長。預先剪枝的判斷方法也有很多,比如信息增益小於一定閾值的時候通過剪枝使決策樹停止生長。但如何確定一個合適的閾值也需要一定的依據,閾值太高導致模型擬合不足,閾值太低又導致模型過擬合。

後剪枝是咋決策樹生長完成之後,按照自底向上的方式修剪決策樹。後剪枝有兩種方式,一種用新的葉子節點替換子樹,該節點的預測類有子樹數據集中的多數類決定。另一種用子樹中最常使用的分支替代子樹。

總結:預先剪枝可能過早地終止決策樹的生長,後剪枝一般能夠產生更好的效果。但是後剪枝在子樹被剪掉後,決策樹生長的一部分計算就被浪費了。

 

 

 


 

 

 

參考:http://blog.csdn.net/nieson2012/article/details/51314873

參考:http://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html


Tags: 男朋友 公務員 找對象 標簽 模型

文章來源:


ads
ads

相關文章
ads

相關文章

ad