機器學習十大經典算法——決策樹

1:什麼是決策樹

1.2官話:

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構建決策樹來進行分析的一種方式,是一種直觀應用概率分析的一種圖解法

1.2通俗

通過一個案例來解釋吧,下圖是一張用戶是否能進行債務償還的表格,按照我平時的習慣,我們腦子裏會有一個類似重要度的東西,比如他年收入高就比年收入低更容易還清貸款,已婚就比單身更容易還清,有房就不沒房更容易還清,但這只是大概,基於習慣得出的結果,所以我們就需要將這個結果代碼化,流程化,可解釋化,這大致就是我認爲的決策樹

 決策樹基礎算法主要有三類,分別爲ID3,C4,5,CART,下表爲他們的大致區別,我將分別講解每一類的推導以及優缺點。

 ID3

ID3算法是決策樹的一個經典的構造算法,內部使用信息熵以及信息增益來進行構建;每次迭代選擇信息增益最大的特徵屬性作爲分割屬性

信息熵

信息熵:1948年,香農引入信息熵;一個系統越是有序,信息熵就越低,一個系統越是混亂,信息熵就越高,所以信息熵被認爲是一個系統有序程度的度量,信息熵就是用來描述系統信息量的不確定度。

H(X)就叫做隨機變量X的信息熵

 信息增益

 這樣只是一個公式,更本不知道怎麼計算,所以,我們在上個案例的基礎上看怎麼解決這個問題,以及和我們預想的有什麼區別

我們先算出

這個式子理解爲,我們的目標變量是無法償還債務,這裏有兩個值是佔有3/10.否佔7/10.所以我們列出這個式子,接下來看擁有房產這個特徵,我們列出式子爲

 理解爲有房產這個值對應有四個,都是否4/4.是的概率爲0

 理解爲無房產這個值對應有四個,都是否1/2.是的概率爲1/2

最後總的減去各自的得到信息增益,以此類推,得出

 收入是最重要的,以此爲房產,婚姻,在這個途中,收入是連續性變量,故要定義一個閾值進行分割,變成離散型變量

優點:
決策樹構建速度快;實現簡單;
缺點:
計算依賴於特徵數目較多的特徵,而屬性值最多的屬性並不一定最優
ID3算法不是遞增算法
ID3算法是單變量決策樹,對於特徵屬性之間的關係不會考慮
抗噪性差
只適合小規模數據集,需要將數據放到內存中

C4.5算法

在ID3算法的基礎上,進行算法優化提出的一種算法(C4.5);現在C4.5已經是特別經典的一種決策樹構造算法;使用信息增益率來取代ID3算法中的信息增益,在樹的構造過程中會進行剪枝操作進行優化;能夠自動完成對連續屬性的離散化處理;C4.5算法在選中分割屬性的時候選擇信息增益率最大的屬性,涉及到的公式爲:

優點:
產生的規則易於理解
準確率較高
實現簡單
缺點:
對數據集需要進行多次順序掃描和排序,所以效率較低
只適合小規模數據集,需要將數據放到內存中

CART算法

使用基尼係數作爲數據純度的量化指標來構建的決策樹算法就叫做CART(Classification And Regression Tree,分類迴歸樹)算法。CART算法使用GINI增益作爲分割屬性選擇的標準,選擇GINI增益最大的作爲當前數據集的分割屬性;可用於分類和迴歸兩類問題。CART構建是二叉樹。

ID3和C4.5算法均只適合在小規模數據集上使用
ID3和C4.5算法都是單變量決策樹
當屬性值取值比較多的時候,最好考慮C4.5算法,ID3得出的效果會比較差
決策樹分類一般情況只適合小數據量的情況(數據可以放內存)
CART算法是三種算法中最常用的一種決策樹構建算法。
三種算法的區別僅僅只是對於當前樹的評價標準不同而已,ID3使用信息增益、
C4.5使用信息增益率、CART使用基尼係數。
CART算法構建的一定是二叉樹,ID3和C4.5構建的不一定是二叉樹。

 

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