機器學習算法系列(一)--決策樹

1、什麼是決策樹

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取淨現值的期望值大於等於零的概率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。其圖如下所示,

樹分爲:根結點、分支、結點及樹葉四個組成部分。



2、決策樹的構造

2.1熵的概念

香農提出 ,一條信息的信息量大小和它的不確定性有直接的關係,要搞清楚一件非常非常不確定的事情,或者 是我們一無所知的事情,需要了解大量信息==>信息量的度量就等於不確定性的多少,信息熵的單位爲bits

信息熵的計算:,式中Pi代表不同事件發生的概率,信息熵總爲正值,且熵值大小與信息的不確定性成正相關。

2.2決策樹的建立規則

依據上述香農信息理論可知,要想不斷增加信息的確定性,在每一個結點都應該選取能使當前結點下的分類的不確定性最大的減小,即使信息熵的值最大程度的減小,這樣選取的結點纔會使信息的不確定性以最大速度降低。

假設有以下數據,根據客戶的年齡、收入、是否爲學生、信用好壞等推斷是否會購買電腦,建立決策樹

1、直接看是否買電腦的信息熵:Info(D) = -9/14*log(9/14) - 5/14*log(5/14) = 0.940 bits

2、分別計算每個影響條件做爲根結點的信息熵

增量爲0.940 - 0.694 = 0.246 bits,類似其它增量分別爲:income:0.029, student = 0.151, creadit_rating = 0.048

增量爲以age做爲根結點時信息增量最大,即能最大程度的減小信息的不確定性

建立後的形式如下


按以下計算方法依次遞歸重複建立每個分支的決策子樹,即可完成整個決策樹的建立。


算法運行過程中應該注意的幾點:

1、樹以代表訓練樣本的單個結點開始

2、如果樣本都在同一個類,則該結點成爲樹葉,並用該類標號

3、使用基於信息熵的計算方式,選擇能夠最好將樣本分類的發生

4、對於所有的屬性均要求爲離散的,連續值城需先離散化

5、對於出現在結點上的屬性,後續步驟中均無需再考慮之

6、所有結點屬於同一類即可停止

7、沒有剩餘屬性可用於分類時停止


其它算法:

C4.5;

classification and regression Trees (CART), 

與此相同均爲貪心算法且自上而下



決策樹的剪枝--避免過度擬合

剪枝是決策樹停止分支的方法之一,剪枝有分預先剪枝和後剪枝兩種。預先剪枝是在樹的生長過程中設定一個指標,當達到該指標時就停止生長,這樣做容易產生“視界侷限”,就是一旦停止分支,使得節點N成爲葉節點,就斷絕了其後繼節點進行“好”的分支操作的任何可能性。不嚴格的說這些已停止的分支會誤導學習算法,導致產生的樹不純度降差最大的地方過分靠近根節點。後剪枝中樹首先要充分生長,直到葉節點都有最小的不純度值爲止,因而可以克服“視界侷限”。然後對所有相鄰的成對葉節點考慮是否消去它們,如果消去能引起令人滿意的不純度增長,那麼執行消去,並令它們的公共父節點成爲新的葉節點。這種“合併”葉節點的做法和節點分支的過程恰好相反,經過剪枝後葉節點常常會分佈在很寬的層次上,樹也變得非平衡。後剪枝技術的優點是克服了“視界侷限”效應,而且無需保留部分樣本用於交叉驗證,所以可以充分利用全部訓練集的信息。但後剪枝的計算量代價比預剪枝方法大得多,特別是在大樣本集中,不過對於小樣本的情況,後剪枝方法還是優於預剪枝方法的。
優缺點:

優點

決策樹易於理解和實現,人們在在學習過程中不需要使用者瞭解很多的背景知識,這同時是它的能夠直接體現數據的特點,只要通過解釋後都有能力去理解決策樹所表達的意義。
對於決策樹,數據的準備往往是簡單或者是不必要的,而且能夠同時處理數據型和常規型屬性,在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。
易於通過靜態測試來對模型進行評測,可以測定模型可信度;如果給定一個觀察的模型,那麼根據所產生的決策樹很容易推出相應的邏輯表達式。

缺點

1)對連續性的字段比較難預測。
2)對有時間順序的數據,需要很多預處理的工作。
3)當類別太多時,錯誤可能就會增加的比較快。
4)一般的算法分類的時候,只是根據一個字段來分類。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章