樹模型 ID3決策樹 擼清算法邏輯

2021-09-27 06:41:12 字數 1188 閱讀 2270

id3決策樹

下圖是判斷是否外出打高爾夫球的決策樹:

演算法流程

從集合d中選擇最優切分屬性a,衡量是否為最優的切分屬性,id3採用的是資訊增益準則。

按照屬性a將集合切分,判斷切分後的集合:如果當前節點包含的樣本屬於同一類別,則無需劃分,並將此葉子節點的類別定為此類;當前屬性為空,或者所有樣本屬性集上取值相同,此葉子節點類別為大多數樣本類別;當前集合為包含樣本為空則直接返回。

若2)中的返回條件都不滿足,則遞迴的繼續切分集合,直到滿足相應的閾值,遞迴結束。

從上述流程上看,決策樹在建立過程中,樹的深度不斷增加,比較容易過擬合,所以要採用剪枝操作,避免形成過於複雜的決策樹。

剪枝操作:

分為兩種:預剪枝、後剪枝

預剪枝是指在決策樹的生成過程中,對每個節點在劃分前先進行評估,若當前的劃分不能帶來泛化效能的提公升,則停止劃分,並將當前節點標記為葉節點。

後剪枝是指先從訓練集生成一顆完整的決策樹,然後自底向上對非葉節點進行考察,若將該節點對應的子樹替換為葉節點,能帶來泛化效能的提公升,則將該子樹替換為葉節點。

決策樹的後剪枝,一般來講可以採用通過極小化決策樹整體的損失函式(loss funtion)或代價函式(cost funtion)來實現。

我們將決策樹學習的損失函式可以定義為:

公式第一項,衡量的是決策樹對樣本的擬合程度,擬合程度越好,其數值越小。公式第二項,衡量的是決策樹的結構複雜程度,其結構越簡單,第二項數值越小,也即是說:損失函式旨在找尋在結構不太複雜而準確率還較高的一棵決策樹(奧卡姆剃刀原理)

後剪枝演算法

計算每個節點的經驗熵

遞迴的從每個葉節點向上會縮。若會縮到父節點之後整體決策樹的c(t)變小,則將其父節點變為新的葉子結點,否則不進行回縮。

重複步驟2)直到找到損失函式最下的t。

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