信息熵與信息增益(IE, Information Entropy; IG, Information Gain)
信息增益是機器學習中特徵選擇的關鍵指標,而學習信息增益前,需要先了解信息熵和條件熵這兩個重要概念。
信息熵(信息量)
信息熵的意思就是一個變量i(就是這裏的類別)可能的變化越多(只和值的種類多少以及發生概率有關,反而跟變量具體的取值沒有任何關係),它攜帶的信息量就越大(因爲是相加累計),這裏就是類別變量i的信息熵越大。
系統越是有序,信息熵就越低;反之,一個系統越亂,信息熵就越高。所以,信息熵也可以說是系統有序化程度的一個衡量。
二分類問題中,當X的概率P(X)爲0.5時,也就是表示變量的不確定性最大,此時的熵也達到最大值1。
條件熵
條件熵的直觀理解:單獨計算明天下雨的信息熵H(Y)是2,而條件熵H(Y|X)是0.01(即今天陰天這個條件下,明天下雨的概率很大,確定性很大,信息量就很少),這樣相減後爲1.99,在獲得陰天這個信息後,下雨信息不確定性減少了1.99!是很多的!所以信息增益大!所以是否陰天這個特徵信息X對明天下雨這個隨機變量Y的來說是很重要的!
因爲條件熵中X也是一個變量,意思是在一個變量X的條件下(變量X的每個值都會取),另一個變量Y熵對X的期望,這裏的期望就是指所有情況各自概率的∑總和。
在文本分類中,特徵詞t的取值只有t(代表t出現)和(代表t不出現)。那麼系統熵等於兩種條件熵按比例求和:
示例說明條件熵
設樣品房數據集樣本12份,變量Y爲房屋價格,根據價格計算該數據集的香農熵(即信息熵),其中價格高的4個佔1/3,價格中等的6個佔1/2,價格低的2個佔1/6,其香農熵爲:
如圖,在房屋的面積X這個條件下計算價格Y的條件熵,根據面積X,面積大的4個(價格3高1中)設爲a,面積中的3個(價格3中)設爲b,面積小的5個(價格1高2中2低)設爲c,先分別計算a,b,c條件下的信息熵爲:
再計算a,b,c信息熵的按比例求和,便得到在條件X條件下,Y的條件熵爲:
信息增益
評價一個系統的特徵t對系統的影響程度就要用到條件熵,即是特徵t存在和不存在的條件下,系統的類別變量i的信息熵。特徵t條件下的信息熵與原始信息熵的差值就是這個特徵給系統帶來的信息增益。
信息增益最大的問題還在於它只能考察特徵對整個系統的貢獻,而不能具體到某個類別上,這就使得它只適合用來做所謂「全局」的特徵選擇(指所有的類都使用相同的特徵集合),而無法做「本地」的特徵選擇(每個類別有自己的特徵集合,因爲有的詞,對這個類別很有區分度,對另一個類別則無足輕重)。
附:特徵提取步驟
1. 卡方檢驗
1.1 統計樣本集中文檔總數(N)。
1.2 統計每個詞的正文檔出現頻率(A)、負文檔出現頻率(B)、正文檔不出現頻率(C)、負文檔不出現頻率(D)。
1.3 計算每個詞的卡方值,公式如下:
1.4 將每個詞按卡方值從大到小排序,選取前k個詞作爲特徵,k即特徵維數。
2. 信息增益
2.1 統計正負分類的文檔數:N1、N2。
2.2 統計每個詞的正文檔出現頻率(A)、負文檔出現頻率(B)、正文檔不出現頻率)、負文檔不出現頻率。
2.3 計算信息熵
2.4 計算每個詞的信息增益
2.5 將每個詞按信息增益值從大到小排序,選取前k個詞作爲特徵,k即特徵維數。