樹模型 ID3演算法

2022-02-16 19:11:21 字數 2744 閱讀 5410

id3演算法的核心是在資料集上應用資訊增益準則來進行特徵選擇,以此遞迴的構建決策樹,以資訊熵和資訊增益為衡量標準,從而實現對資料的歸納分類。

id3演算法需要解決的問題是如何選擇特徵作為劃分資料集的標準。在id3演算法中,選擇資訊增益最大的屬性作為當前的特徵對資料集分類

資訊增益需要涉及到熵,條件熵這2個概念,先通俗的理解一下:

比如:太陽明天從東方公升起 ,這句話的資訊熵等於0,因為這是確定的事件,資訊無價值

對於資訊增益,舉個例子,通俗地講,假設\(x\)(明天下雨)是乙個隨機變數,\(x\)的熵假設等於2, \(y\)(明天陰天)也是隨機變數,在陰天情況下下雨的資訊熵我們如果也知道的話(此處需要知道其聯合概率分布或是通過資料估計)即是條件熵。\(x\)的熵減去\(y\)條件下\(x\)的熵,就是資訊增益。

具體解釋:原本明天下雨的資訊熵是2,條件熵是0.01(因為如果知道明天是陰天,那麼下雨的概率很大,資訊量少),這樣相減後為1.99就是資訊增益。其含義就是在獲得陰天這個資訊後,下雨資訊不確定性減少了1.99,不確定減少了很多,所以資訊增益大。也就是說,陰天這個資訊對明天下午這一推斷來說非常重要。所以在特徵選擇的時候常常用資訊增益,如果ig(資訊增益大)的話那麼這個特徵對於分類來說很關鍵,決策樹就是這樣來找特徵的。具體到資料集上,資訊增益需要結合特徵和對應的label來計算。

資訊增益與熵(entropy)有關,在概率論中,熵是隨機變數不確定性的度量,熵越大,隨機變數的不確定性就越大;假設\(x\)是取有限個值的離散隨機變數,其概率分布為:

\[p(x=x_i)=p_i,i=1,2,3,...,n

\]則,熵的定義為:

\[h(x)=-\sum_^p_i*\log

\]一般取自然對數\(e\)為底數,值得注意的是,熵實際上是隨機變數\(x\)的分布的泛函式,它並不依賴\(x\)的實際取值,而僅僅依賴\(x\)的概率分布,所以它又可以被記作:

\[h(p)=-\sum_^p_i*\log

\]其中, \(n\)表示\(x\)的\(n\)種不同的取值, 這個值一般是離散的. \(p_i\)表示為\(x\)取到值為\(i\)的概率.\(log\)一般是自然底數

例子:多個變數的熵叫聯合熵, 比如兩個變數\(x,y\)的聯合熵就表示為:

\[h(x,y)=-\sum_^p_\log p_

\]類似於條件概率,熵同樣也存在著條件熵, 條件熵描述了知道某個變數以後, 剩下的變數的不確定性, 其表示式如下:

\[h(x|y)=-\sum_^p_\log p(x_i|y_i)

\]\(h(x)\)度量了\(x\)的不確定性, \(h(x|y)\)度量了知道\(y\)後,\(x\)的不確定性, 那麼\(h(x)-h(x|y)\)度量的可以理解為:知道\(y\)的基礎上, \(x\)不確定性減少的程度,我們記為\(i(x,y)\),如圖:

假定當前樣本集合\(d\)中,第\(k\)類樣本所佔比例為\(p_k(k=1,2,3...,|y|)\), 則\(d\)的資訊熵定義為:

\[ent(d)=-\sum_^p_k \log p_k

\]假定離散屬性\(a\)有\(v\)個可能的取值\(\), 若使用\(a\)來對樣本集進行劃分,則會產生\(v\)個分支結點, 也就是說, id3構建的決策樹, 是多叉樹, 那麼它的資訊增益就是

\[gain(d,a) = ent(d)-\sum_^ \fracent(d^v)

\]比如: 乙個二分類資料集, 包含17個樣本, 其中正例為8,反例為9,那麼, 資料集\(d\)的資訊熵為:

\[ent(d)=-(\frac\log \frac+\frac\log \frac )

\]對於變數\(a\),他有三個取值, 那麼它可以將資料集劃分為三個子集: \(d^1,d^2,d^3\), 其樣本裡分別為6,6,5, 這三個自資料集中, 正負樣本分別為(3,3) (4,2),(1,4), 這三個分支結點的資訊熵為為:

\[ent(d^1)=-(\frac \log \frac+\frac \log \frac)

\]\[ent(d^2)=-(\frac \log \frac+\frac \log \frac)

\]\[ent(d^3)=-(\frac \log \frac+\frac \log \frac)

\]那麼變數\(a\)的資訊增益為:

\[gain(d,a)=ent(d)-\sum_^\fracent(d^v)

\]id3使用資訊增益來決策當前樹結點該使用那個變數來構建決策樹, 顯然,資訊增益越大的, 就越能更有效的區分特徵(變數)與**標籤之間的關係.

輸入\(m\)個樣本,每個樣本有\(n\)個離散的特徵,令特徵集合為\(a\),輸出決策樹\(t\)

顯然,id3是乙個多叉樹,且其只能解決分類問題

無法處理連續的特徵,遇到連續的特徵的話,就得做連續資料離散化了,可以考慮分桶等策略

採用資訊增益更大的特徵優先建立決策樹, 但相同的資料集下, 取值較多的特徵值比取值較少的特徵值資訊增益更大,即資訊增益偏向取值較多的特徵。

沒有考慮缺失值,當然大部分演算法都不支援含有missing value的資料集,儘管理論上演算法可以支援,比如gbdt,但大部分gbdt的實現都不支援missing value,目前常用的演算法,只有xgb,lgb支援

過擬合問題,id3沒有考慮過擬合的對抗策略,相當於是在

可解釋性較強

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