理解ID3決策樹

2022-08-05 03:00:23 字數 1473 閱讀 3882

決策樹是乙個樹形結構,類似下面這樣:

上圖除了根節點外,有三個葉子節點和乙個非葉子節點。

使用決策樹來分類某個樣本資料,就是利用根節點擊取的特徵,將當前輸入樣本劃分到根節點下的某個子節點上,然後再利用子節點表示的特徵來將當前樣本劃分到該子節點下的某個子節點上,以此繼續,直到到達某個葉子節點,那麼這個葉子節點表示的類別就是當前決策樹對該樣本資料所屬的類別的**。

對於上圖,因為各個節點表示的特徵和各個葉子節點表示的分類都已經給出了,所以給定乙個資料很容易就能**出對應的類別,但是在實際的分類場景中,我們手上有了標註好的訓練樣本資料後,要如何來構建一顆能夠**新樣本類別的決策樹呢?換句話說就是,我們如何知道這顆決策樹的各個節點擊取什麼特徵來劃分資料才最合適呢?ok,你可能聽過一些演算法的名字,比如id3、c4.5、cart等,它們其實就是用來解決這個問題的。

這裡我們將介紹id3演算法。

我們選取劃分資料集的特徵的時候,需要考慮的標準是什麼特徵可以更好的將資料集分開,比如判斷是男人還是女人,那麼【是否穿高跟鞋】要比【是否帶耳釘】更容易將人群劃分開,或者說更能劃分出純度高的資料子集。

然而,其實很多時候我們都無法輕易的看出哪種特徵能劃分出更純的資料子集,所以就需要一種方法能夠幫助我們量化每種特徵劃分出的資料子集的資訊純度,以便篩選出更純的劃分方式。而其中一種方法就是使用資訊理論,資訊理論是量化處理資訊的分支科學,可以用來度量資訊,比如度量我們剛才說的資料子集的純度。

所以閱讀下面的內容之前,建議先了解一下資訊理論中的相關知識,包括資訊量、資訊熵,可以參考這篇文章:《資訊熵為什麼要定義成-σp * log(p)》。

id3決策樹使用資訊熵度量資料子集的純度,資訊熵越大,資料越混亂,純度越低。

從id3決策樹的第一層開始,如果每一層的資訊熵都是按照最大化的方式遞減的,才能最快劃分出純度較高的資料子集(就像我們人工做分類,一定是從最顯著的特徵開始劃分物品,才是最大程度利用了顯著特徵的優勢,所以以這種方式做分類最快),然後根據葉子節點劃分出的資料子集中的最多出現的類別來確認對應葉子節點的所屬分類,從而得到一顆完整的分類決策樹。

那麼如何保證每一層的資訊熵以最大化的方式遞減呢?這就要說到資訊增益了。

在劃分資料集之前之後資訊發生的變化稱為資訊增益, 所以計算出每個特徵劃分資料集獲得的資訊增益,然後獲得資訊增益最高的特徵就是最好的選擇。

資訊增益的計算方式如下:

按某個特徵劃分當前節點資料集將得到的資訊增益 =

當前節點資料集的資訊熵    -    按該特徵劃分出來的各個資料子集的資訊熵總和

ok,對id3決策樹總結一下:遍歷每個特徵,找出使得資訊增益最大的特徵,做為當前節點下資料子集的劃分特徵,直到所有屬性遍歷完畢,或者某個資料子集的所有資料都已經具有相同的分類,此時id3決策樹構建完成,可以用來**新樣本的類別了。

ok,本篇就這麼多內容啦~,感謝閱讀o(∩_∩)o。

決策樹 ID3構建決策樹

coding utf 8 from math import log import operator 建立訓練資料集 defcreatedataset dataset 1,1,yes 1,1,yes 1,0,no 0,1,no 0,1,no 資料集的最後乙個元素作為該資料的標籤,是否是魚 labels...

決策樹之 ID3

id3 是一種用來構建決策樹的演算法,它根據資訊增益來進行屬性選擇。關於決策樹,請參見 此處主要介紹 id3 演算法如何利用資訊增益選擇屬性。資訊熵,簡稱 熵 假定訓練集中目標屬性為 c c的取值為 c1 c2,cm 每個取值佔的比例為p1 p2,pm 則資訊熵的定義為 en trop y s en...

決策樹 ID3演算法

id3演算法通過計算每個屬性的資訊增益,認為資訊增益越大屬性越優,每次劃分選取資訊增益最大的屬性為劃分標準,重複這個過程,直到構成一棵決策樹。資訊熵是描述事件給我們的驚訝程度,如果所有事件的概率均等,那熵值大,驚訝程度低。如果有一事件的概率極高而其他極低,熵值便低,驚訝程度大。其計算公式如下 資訊增...