編號
溫度天氣遊玩1
高晴是2
高陰是3
中晴否4
中陰否考慮如何構造是否遊玩的決策樹,顯示將哪個屬性(溫度、天氣)作為根節點是個關鍵問題,在這裡先介紹兩個指標:純度和資訊熵。
先說純度,決策樹的構造過程可以理解為尋找純淨劃分的過程。
舉個例子,假設三個集合:
這裡三個集合按照純度來排序,集合1>集合2>集合3。因為集合1的分歧最小,集合3的分歧最大。
然後說資訊熵,資訊熵表示資訊的不確定度
一般情況,我們用概率的倒數的對數函式表示某一事件(某一符號)出現帶來的資訊量。
即每個符號的自資訊量:
i(ai) = log(1/p),單位是bit
而資訊熵指每個資訊量的數學期望,即
h(x)= e(log(1/p)),就是其概率對應的相乘相加!!(該式中對數一般取2為底)
資訊熵的定義:假設t是乙個離散隨機變數,即它的取值範圍r=是有限可數的。設p(i|t)=p,t的熵定義為:
id3演算法計算的是資訊增益,資訊增益指的就是劃分可以帶來純度的提高,資訊熵的下降。它的計算公式,是父親節點的資訊熵減去所有子節點的資訊熵。在計算的過程中,我們會計算每個子節點的歸一化資訊熵,即按照每個子節點在父節點出現的概率,來計算這些子節點的資訊熵。所以資訊增益的公式表示為:
公式中d是父親節點,di是子節點,gain(d,a)中的a作為d節點的屬性選擇
編號溫度
天氣遊玩1高
晴是2高
陰是3中
晴否4中
陰否
d1 (溫度=高) = {1+,2+}
d1 (溫度=中) = {3-,4-}
我們分別計算兩個葉子節點的資訊熵:
因為d1有兩個記錄,d2有兩個記錄,所以d中的記錄一共是2+2=4,即總數為4、所以d1在d中的概率為1/2,d2在d中概率為1/2。那麼作為子節點的歸一化資訊熵為:
gain(d,溫度)=1-0=1
gain(d,天氣)=1-1=0
我們可以看出來,該決策樹純度已經很高,不需要進一步劃分。所以最終的決策樹如下圖所示,只有溫度乙個節點。
決策樹 ID3演算法
id3演算法通過計算每個屬性的資訊增益,認為資訊增益越大屬性越優,每次劃分選取資訊增益最大的屬性為劃分標準,重複這個過程,直到構成一棵決策樹。資訊熵是描述事件給我們的驚訝程度,如果所有事件的概率均等,那熵值大,驚訝程度低。如果有一事件的概率極高而其他極低,熵值便低,驚訝程度大。其計算公式如下 資訊增...
決策樹 ID3演算法
一 決策樹基本概念 在機器學習中,決策樹是乙個 模型,它代表的是物件屬性與物件值之間的一種對映關係。本質上決策樹是通 過一系列規則對資料進行分類的過程。下圖為經典決策樹例項。如圖所示,例項是由 屬性 值 對表示的 例項是用一系列固定的屬性和他們的值構成。目標函式具有離散的輸出值 上圖給每個例項賦予乙...
決策樹ID3演算法
typeerror dict keys object does not support indexing 9.typeerror dict keys object does not support indexing 這個問題是python版本的問題 如果使用的是python2 firststr my...