信息增益到底怎麼理解呢?
在學習決策樹演算法,熵的定義可以看懂,但是信息增益沒看懂
熵:表示隨機變數的不確定性。
條件熵:在一個條件下,隨機變數的不確定性。
信息增益:熵 - 條件熵
在一個條件下,信息不確定性減少的程度!
通俗地講,X(明天下雨)是一個隨機變數,X的熵可以算出來, Y(明天陰天)也是隨機變數,在陰天情況下下雨的信息熵我們如果也知道的話(此處需要知道其聯合概率分布或是通過數據估計)即是條件熵。
兩者相減就是信息增益!原來明天下雨例如信息熵是2,條件熵是0.01(因為如果是陰天就下雨的概率很大,信息就少了),這樣相減後為1.99,在獲得陰天這個信息後,下雨信息不確定性減少了1.99!是很多的!所以信息增益大!也就是說,陰天這個信息對下雨來說是很重要的!
所以在特徵選擇的時候常常用信息增益,如果IG(信息增益大)的話那麼這個特徵對於分類來說很關鍵~~ 決策樹就是這樣來找特徵的!我通過例子一步一步講解這個概念。
在決策樹演算法的學習過程中,信息增益是特徵選擇的一個重要指標,它定義為一個特徵能夠為分類系統帶來多少信息,帶來的信息越多,說明該特徵越重要,相應的信息增益也就越大。
概念
我們前面說了,信息熵是代表隨機變數的複雜度(不確定度)通俗理解信息熵 - 知乎專欄,條件熵代表在某一個條件下,隨機變數的複雜度(不確定度)通俗理解條件熵 - 知乎專欄。
而我們的信息增益恰好是:信息熵-條件熵。
換句話說,信息增益代表了在一個條件下,信息複雜度(不確定性)減少的程度。
那麼我們現在也很好理解了,在決策樹演算法中,我們的關鍵就是每次選擇一個特徵,特徵有多個,那麼到底按照什麼標準來選擇哪一個特徵。
這個問題就可以用信息增益來度量。如果選擇一個特徵後,信息增益最大(信息不確定性減少的程度最大),那麼我們就選取這個特徵。
例子
我們有如下數據:
可以求得隨機變數X(嫁與不嫁)的信息熵為:
嫁的個數為6個,佔1/2,那麼信息熵為-1/2log1/2-1/2log1/2 = -log1/2=0.301
現在假如我知道了一個男生的身高信息。
身高有三個可能的取值{矮,中,高}
矮包括{1,2,3,5,6,11,12},嫁的個數為1個,不嫁的個數為6個
中包括{8,9} ,嫁的個數為2個,不嫁的個數為0個
高包括{4,7,10},嫁的個數為3個,不嫁的個數為0個
先回憶一下條件熵的公式如下:
我們先求出公式對應的:
H(Y|X = 矮) = -1/7log1/7-6/7log6/7=0.178
H(Y|X=中) = -1log1-0 = 0
H(Y|X=高) = -1log1-0=0
p(X = 矮) = 7/12,p(X =中) = 2/12,p(X=高) = 3/12
則可以得出條件熵為:
7/12*0.178+2/12*0+3/12*0 = 0.103
那麼我們知道信息熵與條件熵相減就是我們的信息增益,為
0.301-0.103=0.198
所以我們可以得出我們在知道了身高這個信息之後,信息增益是0.198
結論
我們可以知道,本來如果我對一個男生什麼都不知道的話,作為他的女朋友決定是否嫁給他的不確定性有0.301這麼大。
當我們知道男朋友的身高信息後,不確定度減少了0.198.也就是說,身高這個特徵對於我們廣大女生同學來說,決定嫁不嫁給自己的男朋友是很重要的。
至少我們知道了身高特徵後,我們原來沒有底的心裡(0.301)已經明朗一半多了,減少0.198了(大於原來的一半了)。
那麼這就類似於非誠勿擾節目裡面的橋段了,請問女嘉賓,你只能知道男生的一個特徵。請問你想知道哪個特徵。
假如其它特徵我也全算了,信息增益是身高這個特徵最大。那麼我就可以說,孟非哥哥,我想知道男嘉賓的一個特徵是身高特徵。因為它在這些特徵中,對於我挑夫君是最重要的,信息增益是最大的,知道了這個特徵,嫁與不嫁的不確定度減少的是最多的。
哈哈,希望能對理解信息增益有所幫助。
文章地址:通俗理解信息增益 - 知乎專欄
,信息增益為總的熵減去某個分類標準對應的熵。
信息增益(information gain)是指期望信息或者信息熵的有效減少量(通常用「位元組」衡量),根據它能夠確定在什麼樣的層次上選擇什麼樣的變數來分類。
信息增益(IG)是資訊理論中比較重要的一個計算方法,該方法能夠估算系統中新引入的特徵所帶來的信息量,即信息的增加量。通過該計算,實現了ID3演算法,使得決策樹分類方法獲得改良,並得到了廣泛應用。
決策樹的本質是找到數據與類別的關係,也就是說我們希望給定一些數據,通過這種關係可以確定每條數據的類別,並且顯然這種關係越確定學好,而這種確定性的增加意味著我們希望隨機性儘可能的減小。建立決策樹的過程是每次選擇一個特徵對數據進行劃分,這相當於給數據提供了已知信息,這個過程一定會使數據的不確定性減小,且不確定性減小的越多代表這次劃分越有效,而這裡面不確定性的減小程度就是用信息增益來度量的。
要弄清楚什麼是信息增益,首先要明確信息熵和條件熵的概念。
=====================信息熵===========================
那麼什麼是信息熵呢?熵是隨機變數不確定度的度量。
設 是一個離散型變數,其取值空間為 K,概率密度函數為 ( ),這個變數 的熵定義為:
log函數是以2為底的。熵實際上表示的是隨機變數 的分布的泛函數,並不依賴於 的實際取值,而依賴於其概率分布。
實際上信息熵就是一個與隨機變數的概率分布相關的函數,其函數圖像如下所示,橫坐標表示概率,縱坐標表示熵。
當概率為0或者1,變數就不再是隨機的了,其不確定性,也就是熵為零。
當概率為0.5時,也就是表示變數的不確定性最大,此時的熵也達到最大值。
給定以下一些數據:
設變數為價格,根據價格計算該數據集的香農熵,其中價格高的佔1/3,價格中等的佔1/2,價格低的佔1/6,其香農熵為:
=====================條件熵===========================
何謂條件熵?既然稱之為條件熵,其實也就是在滿足某個條件下的熵,那麼這個條件是什麼呢?這個條件是指某個變數確定的情況。
比如數據集中有若干個變數,其中有一個 ,和一個 ,當 確定時,計算該數據集根據 的熵。
這個變數 確定意味著什麼?意味著數據集根據 的取值不同,會被分成不同的子集,然後分別計算這些子集的香農熵,再對其進行合併,所得到的這個熵稱之為條件熵。
同樣是上面的一些數據,現在以面積為條件,當面積確定之後,這些數據被分為三個數據子集:
a:
b:
c:
現在分別對其三部分數據根據價格計算香農熵:
然後將三部分香農熵根據其佔總數據量的比重求和:
得到的這個結果稱之為以面積為條件,價格的條件熵。
=====================信息增益===========================
在了解了什麼是信息熵和條件熵之後,我們就可以來看下信息增益是個什麼東西了。
我們把特徵A對數據集D的信息增益記為 ( , ) ,定義集合D的信息熵為 (D),定義集合D在特徵A條件下的條件熵為 (D|A),那麼信息增益為:
信息增益表示在條件A確定的情況下,信息的不確定性減少的程度。也就是說按照條件A對數據進行分類之後,分類數據的確定性是否比劃分之前更高。
因此我們可以通過計算信息增益來選擇使用哪個特徵作為決策樹的節點更合適。
通過實現決策樹演算法,說說自己對信息增益的理解,信息增益是熵的減少或者數據無序度的減少。
如果要比較數據集中的特徵F1,F2信息量的大小,需要:
1)計算原始的信息熵S1;
2)分別計算除去特徵F1之後的信息熵S2,除去特徵F2之後的信息熵S3;
3)作差值delta1=(S1-S2),delta2=(S1-S3);
4)如果delta1&>delta2,說明F1對數據劃分更有利。
有點沒明白,信息增益公式中info(S)固定的,其實可以用infox(s)來間接表示,為什麼還要用到兩者相減呢?
信息增益就是互信息。
我也看機器學習,好多數學知識也在腦補
推薦閱讀:
※數據或文件壓縮在計算機機器層面是怎樣實現的?
※在一個成果互評系統里,小團體有什麼不留痕迹、又能分辨彼此作品的策略?
※橋牌叫牌體系是如何設計的?
※如果有個飛船,在某處畫個點,就能解碼出一套百科全書,真的可能么?