1. 程式人生 > >(轉載)我們為什麼需要資訊增益比,而不是資訊增益?

(轉載)我們為什麼需要資訊增益比,而不是資訊增益?

我們為什麼需要資訊增益比,而不是資訊增益?

之前不知道為何要用資訊增益比,資訊增益比相對於資訊增益有何優勢,看了這篇文章感覺博主所述比較詳細,特此轉載用作複習

                     表一 滿足什麼情況才去玩高爾夫 [1]

    
  • 1
Day Temperatrue Outlook Humidity Windy PlayGolf?
07-05 hot sunny high false no
07-06 hot sunny high true no
07-07 hot overcast high false yes
07-09 cool rain normal false yes
07-10 cool overcast normal true yes
07-12 mild sunny high false no
07-14 cool sunny normal false yes
07-15 mild rain normal false yes
07-20 mild sunny normal true yes
07-21 mild overcast high true yes
07-22 hot overcast normal false yes
07-23 mild sunny high true no
07-26 cool sunny normal true no
07-30 mild sunny high false yes

決策樹是機器學習中的經典演算法,分別由三個經典演算法實現:ID3C4.5CARTID3,C4.5,CART指數(基尼指數)

對於ID3ID3呢?這就是下面的內容要討論的。

討論之前先來幾個公式壓壓驚。

在資訊理論與概率統計中,熵(entropy)是表示隨機變數不確定性的度量[2]。設X的概率分佈為

P(X=Xi)=pi,i=1,2,...,nP(X=Xi)=pi,i=1,2,...,n

其實公式看起來挺嚇人的,但是計算的時候很簡單。拿表一作為計算的例子,假設

p1=Num(no)/(Num(no)+Num(yes))p1=Num(no)/(Num(no)+Num(yes))

條件熵定義為

H(D|A)=i=1npiH(Y|A=ai)H(D|A)=∑i=1npiH(Y|A=ai) 經驗條件熵,再舉一個例子,假如把Outlook作為分隔樣本的特徵的話,那麼

E(Outlook=sunny)=25log2535log35=0.971E(Outlook=sunny)=−25log25−35log35=0.971

所以

H(D|A)=5140.971+4140+5140.971=0.693H(D|A)=514⋅0.971+414⋅0+514⋅0.971=0.693

得到了熵和條件熵,那麼資訊增益就好求了,公式如下

g(D,A)=H(D)H(D|A)g(D,A)=H(D)−H(D|A) ,資訊增益越大說明該特徵對於減少樣本的不確定性程度的能力越大,也就代表這個特徵越好。這種選擇特徵的思路就是ID3演算法選擇特徵的核心思想。

本來ID3ID3

總結上面的公式,計算得到下表:

OutLook Temperatrue
Gain:0.940-0.693 = 0.247 Gain:0.940-0.911 = 0.029
Gain ratio: 0.245/1.577 = 0.157 Gain ratio:0.029/1.557 = 0.019
Humidity Windy
Gain:0.940-0.788 = 0.152 Gain:0.940-0.911 = 0.029
Gain ratio: 0.152/1.000 = 0.152 Gain ratio:0.048/0.985 = 0.049
Day
Gain ratio:0.940/3.807 = 0.246

然而。。。最終還是DayDay的特徵優勢最大。。。Orz
不過雖然這樣,資訊增益率還是要比資訊增益可靠的多的!另外也可以看出,對特徵的篩選也是非常重要的步驟,可以減少資訊增益率失效的機率。

[1] http://www.ke.tu-darmstadt.de/lehre/archiv/ws0809/mldm/dt.pdf
[2] 李航. 統計學習方法.

我們為什麼需要資訊增益比,而不是資訊增益?

之前不知道為何要用資訊增益比,資訊增益比相對於資訊增益有何優勢,看了這篇文章感覺博主所述比較詳細,特此轉載用作複習

                     表一 滿足什麼情況才去玩高爾夫 [1]

  
  • 1
Day Temperatrue Outlook Humidity Windy PlayGolf?
07-05 hot sunny high false no
07-06 hot sunny high true no
07-07 hot overcast high false yes
07-09 cool rain normal false yes
07-10 cool overcast normal true yes
07-12 mild sunny high false no
07-14 cool sunny normal false yes
07-15 mild rain normal false yes
07-20 mild sunny normal true yes
07-21 mild overcast high true yes
07-22 hot overcast normal false yes
07-23 mild sunny high true no
07-26 cool sunny normal true no
07-30 mild sunny high false yes