信息熵的定義和理解
定義
熵是資訊理論中的概念,用於表示信息的不確定程度。熵值越大,則信息的不確定程度越大。
舉個不是很恰當的例子,假設你現在正在玩撲克牌,和電影里的賭神一樣,你喜歡猜牌,現在觀察到的牌面如下:
那麼這張牌可能是什麼?首先我們知道一副牌有4種花色{?,?,?,?},每種花色有13張牌{A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K}。那麼從已經觀察到圖形和顏色來看,這隻牌的花色可能是{?,?},牌號可能是{2, 3, 6, 8, 9, Q},一共有12種可能。這種在觀察數據不足(只看到部分牌面)的情況下,導致的信息不確定度(沒法完全確定花色和牌號),可以用熵來衡量。
基本熵(香農熵)
對於一組觀察變數/信息X,其不確定程度的定義為:
還是以撲克牌的例子來說,我們把花色和牌號用兩個隨機變數來表示,其中花色用隨機變數Y,牌號用隨機變數X。即Y={?,?},X={2, 3, 6, 8, 9, Q}。
我們知道,在完全理想的情況下,每張撲克牌出現的概率是一樣的,即
我們先不考慮隨機變數Y的可能性,只考慮隨機變數X,即猜測這張牌的牌面。那麼從熵的定義公式,我們可以計算出,當我們觀察到上述圖片的時候,此時實際牌面的熵值為:
聯合熵
對於兩組觀察變數/信息X和Y,其不確定程度的定義為:
繼續用撲克牌的例子,之前我們已經計算出,只考慮牌號的情況下的熵值,現在同時考慮花色Y和牌號X。則根據定義,此時的熵值為:
條件熵
假設存在兩組觀察變數/信息X和Y,當我們已知Y時,此時的X的不確定程度稱之為條件熵,其定義為:
假設現在我們通過某種方式(例如透視),偷偷的知道了現在手中的牌是黑桃,即我們知道了花色X,那麼這時候我們手中牌的不確定程度怎麼表示?
從定義可知:
信息增益
信息增益G(X, Y)的定義為,已知觀察數據Y,對於減少信息X的不確定度的幫助有多大
G(X, Y) = H(X) - H(X|Y)
信息增益率
信息增益率Gr(X, Y)的定義為,已知觀察數據Y,對於減少信息X的不確定度的幫助的比例
Gr(X, Y) = G(X, Y) / H(X)
練練手
假設我們現在收集到一組數據
問:label的基本熵?
答:從數據中可以知道label={-1, 1},且P(label = 1) = P(label = -1) = 0.5,因此根據公式計算得到H(label) = -(P(lable = 1) * log P(lable = 1) + P(lable = -1) * log P(lable = -1)) = -log 0.5
問:featrue1和label的聯合熵?
答:從數據中可以知道,featrue1={1, 2}, lable={-1, 1},因此兩者的聯合取值範圍為{(1, -1), (1, 1), (2, -1), (2, 1)},且
P(feature1 = 1, label = -1)=0.5
P(feature1 = 1, label = 1)=0
P(feature1 = 2, label = -1)=0
P(feature1 = 2, label = 1)=0.5,
根據定義可以算出H(feature1, label) = -(0.5 * log 0.5 + 0 * log 0 + 0.5 * log 0.5 + 0 * log 0) = -log 0.5
問:已知feature1的情況下,求label的條件熵?
答:
P(label = 1 | feature1 = 1)=0 & P(feature1 = 1, label = 1)=0
P(label = -1 | feature1 = 1)=1 & P(feature1 = 1, label = -1)=0.5
P(label = 1 | feature1 = 2)=1 & P(feature1 = 2, label = 1)=0.5
P(label = -1 | feature1 = 2)=0 & P(feature1 = 2, label = -1)=0
根據定義可以算出H(label | feature1) = -(0 * log 0 + 0.5 * log 1 + 0.5 * log 1 + 0 * log 0) = - 1 * log 1
問:已知feature1的情況下,對於知道label的信息增益?
答:G(label, feature1) = H(label) - H(label | feature1) = - log 0.5 - ( -1 log 1) = - log 0.5
推薦閱讀:
※數學之《因數與倍數》常見錯題集
※孩子數學不好,和遺傳有關?賴爸爸還是媽媽,答案居然是······
※Excel函數學習8:SEARCH函數
※漫畫 | 精子是怎麼游到卵子身邊的?它背後的數學原理是什麼?
※關於複數的乘方/開方運算