ML《決策樹(一)ID3》

星海千尋發表於2020-12-27

今天做個回顧和記錄,簡單做個學習,也是梳理下知識點,決策樹的學習。

本文的學習,自己不想畫圖,因為覺得沒有必要自己畫圖,所以文中一部分圖片是擷取其他人的分享,但是內容都會是自己寫的。

當然了,這裡是淺析學習學習。

一:ID3
拿西瓜書裡面的來舉例子來說,我們去挑西瓜唄,西瓜的有紋理,色澤,觸感等特徵,怎麼判斷這是不是好瓜呢?有經驗的人會告訴我們,紋理咋樣的是好是壞,然後色澤咋樣的時好時壞,等等一系列的類似於if –else 的判斷標準,畫出來呢就是下圖表示。
在這裡插入圖片描述

這個只是舉例子啊,很明顯從資料結構的角度來看就是樹,從這裡我們能看出來,從某一個特徵開始劃分,一直到達了某個葉子節點我們才能確認該瓜是不是一個好瓜。如果我們能得到這個模型,那麼對於一個新的瓜就能做出對應的分類預測了。

決策樹額特點就是非葉子節點呢都是屬性值/特徵值的判斷過程,至於葉子節點才是最明確的分類結果。決策樹學習的關鍵其實就是選擇最優劃分屬性,希望劃分後,分支結點的“純度”越來越高。這裡的“純度”也可以說是分類的明確度,在資訊理論上來講就是熵。純度越高,無序度越低,熵越低。

但是真實要怎麼做呢?怎麼得到這樣的“一棵樹”?拿資料說話,假如我們有以下資料。
在這裡插入圖片描述

那麼我們以此來建立一個決策樹出來。我們來學習ID3的演算法。

我們既然希望劃分之後結點的“純度”越來越高,那麼如何度量純度呢?而之前我們提到了資訊理論的角度,“資訊熵”是度量樣本集合不確定度(純度)的最常用的指標,資訊熵是代表隨機變數的複雜度(不確定度)通俗理解資訊熵,條件熵代表在某一個條件下,隨機變數的複雜度(不確定度),這個我們之前有篇博文學習過。

在ID3演算法中,我們採取資訊增益這個量來作為純度的度量。我們選取使得資訊增益最大的特徵進行分裂! 而我們的資訊增益是:資訊熵 減去 條件熵。接下來我們將用數學的表示方法來描述這一過程。

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

好了公式寫完了,那麼就來說一說吧。
在決策樹演算法中,我們的關鍵就是每次選擇一個特徵作為劃分的一個節點node,我們可以看到,決策樹中父節點的劃分只是一句某一個單一的特徵,現在特徵有多個,那麼到底按照什麼標準來選擇哪一個特徵。

這個問題就可以用資訊增益來度量。如果選擇一個特徵後,資訊增益最大(資訊不確定性減少的程度最大),那麼我們就選取這個特徵,吶,ID3的演算法就是這樣的,就是在所有的特徵中,選擇資訊增益最大的特徵,然後我們按照分出來的多個小的子樣本集合,再進行同樣的操作,直到葉子節點是純度最高的情況才停止。

具體的數學計算操作呢,這裡就省去了,因為我懶,我覺得前面已經能說的很詳細了,熟悉資訊理論的同學應該是一看就懂了的,還不懂的話呢,建議先學些一下我之前的關於各種資訊熵的博文,以及對應的知識補充。

ID3演算法呢,有一些缺點。
1:它只能處理離散值。
2:容易過擬合,因為我們拿到了樣本,總是希望最後得到的樣本是非常純的,所以我那個我那個造成了過擬合,訓練樣本擬合很好,泛化能力降低。
3:在每一次的節點選擇中啊,它總是傾向於某個屬性值種類多的特徵。

為什麼說ID3傾向於那個魚選擇屬性值種類多的特徵呢,舉一個最直接的例子,假如某個樣本集合的值有ID這個列,當然ID是獨一無二的,唯一表示某個具體的樣本,那麼如果我們按照ID這一列來劃分,每一個劃分的子樣本集合都式純度很高的,唯一確定的,資訊熵都是0,那麼此時計算資訊增益無非就是最高的,所以就會直截了當選擇了ID,當然這裡只是舉了個例子,實際中誰也不會去把ID作為屬性參與訓練,也就是從側面反映出了,ID3會傾向於選擇某個屬性值種類多的特徵。

因為有了這些缺點吧,下一篇博文我們會學習C4.5演算法。

相關文章