決策樹 ID3演算法

2021-09-24 16:42:05 字數 1687 閱讀 7966

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)。

如果樣本都在同乙個類,則該結點成為樹葉,並用該類標號(步驟2 和

3)。否則,演算法使用稱為資訊增益的基於熵的度量作為啟發資訊,選擇能夠最好地將樣本分類的屬性(步驟

6)。該屬性成為該結點的「測試

」或「判定

」屬性(步驟

7)。在演算法的該版本中,

所有的屬性都是分類的,即離散值。連續屬性必須離散化。

對測試屬性的每個已知的值,建立乙個分枝,並據此劃分樣本(步驟

8-10

)。演算法使用同樣的過程,遞迴地形成每個劃分上的樣本判定樹。一旦乙個屬性出現在乙個結點上,就不必該結點的任何後代上考慮它(步驟

13)。

遞迴劃分步驟僅當下列條件之一成立停止:

(a)

給定結點的所有樣本屬於同一類(步驟2 和

3)。(b)

沒有剩餘屬性可以用來進一步劃分樣本(步驟

4)。在此情況下,使用多數表決(步驟5)。

這涉及將給定的結點轉換成樹葉,並用樣本中的多數所在的類標記它。替換地,可以存放結

點樣本的類分布。

(c)

分枝test_attribute=a

i沒有樣本(步驟

11)。在這種情況下,以

samples

中的多數類

建立乙個樹葉(步驟12)

python**實

決策樹 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...