機器學習之決策樹算法

決策樹(decision tree)

機器學習中,決策樹是一個預測模型;他表明的是對象屬性與對象值之間的一種映射關係。樹中每一個節點表示某個對象,而每一個分叉路徑則表明的某個可能的屬性值,而每一個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若欲有複數輸出,能夠創建獨立的決策樹以處理不一樣輸出。 數據挖掘中決策樹是一種常常要用到的技術,能夠用於分析數據,一樣也能夠用來做預測。
從數據產生決策樹的機器學習技術叫作決策樹學習,通俗說就是決策樹。算法

決策樹可能有多種創建方式:
clipboard.png機器學習

clipboard.png

如何選擇最優的決策樹?
先引入一個信息熵(information entropy)的概念:
信息熵是度量樣本集合純度經常使用的一種指標,他的值越小,則當前樣本集合S的純度越高。Ent(S)的最小值爲0,最大值爲log(C)
clipboard.png當前樣本集合中第i類樣本所佔比例爲pi。post

信息增益(information gain)
假定離散屬性A有個V可能的取值,若使用A對樣本集合S進行劃分,會產生V個分支節點,其中第v個分支節點包含了S中全部在屬性A上取值爲Sv的節點,記爲|Sv|。咱們能夠根據上式計算出|Sv|的信息熵,再根據樣本數的不一樣賦值權重,即樣本數越多的分支節點的影響越大,因而能夠計算出屬性A對樣本集S進行劃分所得到的信息增益
clipboard.png
通常而言,信息增益越大,則意味着使用屬性A來進行劃分所得到的純度提高越大。咱們選擇當前集合下信息增益最大對應的屬性來進行劃分。性能

剪枝(pruning)

剪枝是決策樹學習算法中對付「過擬合」的主要手段。在決策樹學習中,爲了儘量正確分類樣本,結點劃分過程將被不斷重複,有時形成分支過多,致使出現因訓練樣本學得太好了,以致於把訓練集自身的一些特色當作全部數據都具備的通常性質而致使過擬合。學習

預剪枝(prepruning)

在決策樹生成過程當中,對每一個結點在劃分前進行估計,若當前結點的劃分不能帶來決策樹泛化性能提高,則中止劃分並將當前結點標記爲葉結點。測試

方法:

判斷決策樹泛化性能是否提高可以使用留出法:即預留一部分數據用做「驗證集」以進行性能評估,以對劃分先後的泛化性能進行估計。若是劃分後驗證集精度降低,則禁止劃分。spa

優缺點:

預剪枝雖然使決策樹下降了過擬合的風險,減小了訓練時間和測試時間的開銷。但有些分支的當前劃分雖然不能提高泛化性能,甚至可能致使泛化性能暫時降低,但在其基礎上的後續劃分可能致使性能顯著提升。預剪枝是貪心算法,帶來了欠擬合的風險。3d

後剪枝(postpruning)

方法:

先在訓練集生成一顆完整的決策樹,而後自底向上的對非葉結點進行考察,若將該節點對應的子樹替換爲葉結點能提高泛化性能,則將該子樹替換爲葉結點。code

優缺點:

通常情形下,後剪枝決策樹的欠擬合風險很小,泛化性能每每因爲預剪枝決策樹。但後剪枝過程是生成徹底決策樹以後進行的,且須要由底向上對非葉結點進行逐一考察,其訓練時間開銷相對較大。orm

參考資料:
維基百科
http://www.xuetangx.com/cours...
機器學習 周志華

相關文章
相關標籤/搜索