id3演算法也叫決策樹歸納演算法,不是很使用,但是是決策樹演算法的開山之作,這裡簡單說下
在資訊理論中,熵(entropy)是隨機變數不確定性的度量,也就是熵越大,則隨機變數的不確定性越大。設x是乙個取有限個值得離散隨機變數,其概率分布為:
則隨機變數x的熵定義為:
設有隨機變數(x, y),其聯合概率分布為:
條件熵h(y|x)表示在已知隨機變數x的條件下,隨機變數y的不確定性。隨機變數x給定的條件下隨機變數y的條件熵h(y|x),定義為x給定條件下y的條件概率分布的熵對x的數學期望:
當熵和條件熵中的概率由資料估計得到時(如極大似然估計),所對應的熵與條件熵分別稱為經驗熵和經驗條件熵。
表示獲取資訊的不確定性大小。
定義:資訊增益表示由於得知特徵a的資訊後兒時的資料集d的分類不確定性減少的程度,定義為:
gain(d,a) = h(d) – h(d|a)
即集合d的經驗熵h(d)與特徵a給定條件下d的經驗條件熵h(h|a)之差。
理解:選擇劃分後資訊增益大的作為劃分特徵,說明使用該特徵後劃分得到的子集純度越高,即不確定性越小。因此我們總是選擇當前使得資訊增益最大的特徵來劃分資料集。輸入:訓練資料集d,特徵集a,閾值ε;缺點:資訊增益偏向取值較多的特徵(原因:當特徵的取值較多時,根據此特徵劃分更容易得到純度更高的子集,因此劃分後的熵更低,即不確定性更低,因此資訊增益更大)
輸出:決策樹t.
樹以代表訓練樣本的單個結點開始(步驟1)。python**實如果樣本都在同乙個類,則該結點成為樹葉,並用該類標號(步驟2 和
3)。否則,演算法使用稱為資訊增益的基於熵的度量作為啟發資訊,選擇能夠最好地將樣本分類的屬性(步驟
6)。該屬性成為該結點的「測試
」或「判定
」屬性(步驟
7)。在演算法的該版本中,
所有的屬性都是分類的,即離散值。連續屬性必須離散化。
對測試屬性的每個已知的值,建立乙個分枝,並據此劃分樣本(步驟
8-10
)。演算法使用同樣的過程,遞迴地形成每個劃分上的樣本判定樹。一旦乙個屬性出現在乙個結點上,就不必該結點的任何後代上考慮它(步驟
13)。
遞迴劃分步驟僅當下列條件之一成立停止:
(a)
給定結點的所有樣本屬於同一類(步驟2 和
3)。(b)
沒有剩餘屬性可以用來進一步劃分樣本(步驟
4)。在此情況下,使用多數表決(步驟5)。
這涉及將給定的結點轉換成樹葉,並用樣本中的多數所在的類標記它。替換地,可以存放結
點樣本的類分布。
(c)
分枝test_attribute=a
i沒有樣本(步驟
11)。在這種情況下,以
samples
中的多數類
建立乙個樹葉(步驟12)
決策樹 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...