最大資訊熵增益 資訊熵與資訊增益

2021-10-13 11:01:32 字數 2696 閱讀 9460

前言

熵在機器學習中用的非常普遍,但這個又難以理解,經常忘記,寫一篇部落格記錄一下,也方便其他人學習了解。

什麼是熵

一開始接觸熵是大二的資訊理論,非常難的一門課,當時學的時候不知道這個東西有什麼用,完全就不太想學,因為不知道幹嘛,也不知道學了有什麼用,但是現在很後悔,定義:熵也叫資訊熵,可以表徵隨機變數分布的混亂程度,分布越混亂,則熵越大,簡易的解釋就是:在乙個隨機事件中,某個事件發生的不確定度越大,熵也就越大,事件發生的概率越小,不確定度越大,熵也越大。熵在物理學上表徵物質狀態的參量之一,也是體系混亂程度的度量;熵存在的意義是度量資訊量的多少,人們常常說資訊很多,或者資訊較少,但卻很難說清楚資訊到底有多少,熵就是乙個度量的單位,你也可以把他與千克、公釐等單位相比較增加理解,千克是重量單位,公釐是長度度量單位,所以用熵來度量資訊。其實熵還可以用來度量其他的很多內容,特別是在物理領域,但這裡不加追述,可以參考部落格。

熵的計算

熵是資訊的度量,資訊是事件的發生,我們可以通過如下公式來計算資訊熵:

h(x)=−∑inp(xi)log⁡2p(xi)h(x)=-\sum_^p(x_i)\log_p(x_i)h(x)=−i∑n​p(xi​)log2​p(xi​)

這裡其實有一點要說明,沒有要求一定是取對數2,也可以取對數e作為底,具體看,從公式可以看出,資訊熵h(x)h(x)h(x)是各項自資訊的累加值,由於每一項都是整正數,故而隨機變數取值個數越多,狀態數也就越多,累加次數就越多,資訊熵就越大,混亂程度就越大,純度越小。越寬廣的分布,熵就越大,在同樣的定義域內,由於分布寬廣性中脈衝分布 < 高斯分布 < 均勻分布,故而熵的關係為脈衝分布資訊熵 < 高斯分布資訊熵 < 均勻分布資訊熵。同樣我們可以看到熵的計算只與事件概率有關,跟事件對應的值無關係,比如:拋硬幣,硬幣為正面概率是0.5,如果是正面,我得到7元,反面你得到5元錢,熵是不會考慮事件的取值。

公式約束了 0log⁡0=00\log0=00log0=0,畢竟有些事情不會發生,但這種情況也不會被我們考慮,給個約束還是可以的。

同樣熵也是聚焦在整個大資料集上的,或者說是統計意義上的,某不是某次實際的樣本資料,而是當樣本資料無限多個的時候,熵才有意義,就像拋硬幣,拋無窮多次,總體的情況可以用熵來表示。

推廣到多維隨機變數的聯合分布,其聯合資訊熵:

h(x,y)=−∑in∑jmp(xi,yj)log⁡2p(xi,yj)h(x,y)= -\sum_^n \sum_^mp(x_i,y_j)\log_2p(x_i,y_j)h(x,y)=−i∑n​j∑m​p(xi​,yj​)log2​p(xi​,yj​)

資訊熵也是有推導過程的,參考部落格,了解推導過程。

條件熵為s,什麼要講條件熵?這主要是為了講解機器學習中的資訊增益的概念,條件熵的定義為:在x給定條件下,y的條件概率分布的熵對x的數學期望。有點抽象,看具體公式就比較容易理解了:

h(y∣x)=h(x,y)−h(x)h(y|x)=h(x,y)-h(x)h(y∣x)=h(x,y)−h(x)

同理可以知道:

h(x∣y)=h(x,y)−h(y)h(x|y)=h(x,y)-h(y)h(x∣y)=h(x,y)−h(y)

資訊增益

資訊增益(information gain):熵a-條件熵b,是資訊量的差值,表示此條件對於資訊熵減少的程度。也就是說,一開始是a狀態,用了條件後變成了b狀態,則條件引起的變化是a-b,即資訊增益(它描述的是變化delta),拿多特徵分類來說,在某個特徵下,原始資訊熵減去已知該特徵下的條件熵,這樣就知道選取這個特徵之後的資訊增益,在決策樹中我們選取資訊增益最大的特徵作為決策用的特徵。我們看下資訊增益的公式:

g(d,a)=h(d)−h(d∣a)g(d,a)=h(d)-h(d|a)g(d,a)=h(d)−h(d∣a)

其中a就是乙個特徵,d是原始的資料集,d∣ad|ad∣a是在a分類下的資料集,兩個資料集的資訊熵相減就是資訊增益,可能有人問了,那麼這兩個資訊熵有什麼區別,已知乙個條件之後混亂程度就減少很多,資訊熵自然是減少的,可以拿乙個例子來分析:

編號身高

顏值喜歡喝酒程度

是否渣男中否

低否低是

高否高否

身高、顏值、喝酒都是特徵,是否渣男是分類結果,我們來算,已知a事件為身高情況下的資訊增益:

h(d)=−(45log⁡245)−(15log⁡215)=0.72187h(d∣a)=−25(12log⁡(12)+12log⁡(12))−15(1log⁡1)−25(1log⁡1+0)=0.4g(d,a)=h(d)−h(d∣a)=0.32187\begin

h(d)&=-(\frac\log_2})-(\frac\log_2}) \\

&=0.72187 \\

h(d|a)&=-\frac(\frac\log(\frac)+\frac\log(\frac))-\frac(1\log1)-\frac(1\log1+0) \\

&=0.4\\

g(d,a)&=h(d)-h(d|a)=0.32187

\endh(d)h(d∣a)g(d,a)​=−(54​log2​54​)−(51​log2​51​)=0.72187=−52​(21​log(21​)+21​log(21​))−51​(1log1)−52​(1log1+0)=0.4=h(d)−h(d∣a)=0.32187​

求解h(d|a)的時候也要考慮條件概率,已知該條件下的分類結果的資訊熵。

好的條件就是資訊增益越大越好,即變化完後熵越小越好(熵代表混亂程度,最大程度地減小了混亂)。因此我們在樹分叉的時候,應優先使用資訊增益最大的屬性,這樣降低了複雜度,也簡化了後邊的邏輯

參考部落格

標籤:xi,frac,log,增益,資訊,資訊熵

最大資訊熵增益 資訊熵與資訊增益

1.資訊熵 資訊熵就是指不確定性,熵越大,不確定性越大 2.關於資訊增益 資訊增益是針對乙個乙個的特徵而言的,就是看乙個特徵t,系統有它和沒它的時候資訊量各是多少,兩者的差值就是這個特徵給系統帶來的資訊量,即增益。系統含有特徵t的時候資訊量很好計算,就是剛才的式子,它表示的是包含所有特徵時系統的資訊...

資訊熵與資訊熵增益

資料的資訊屬性是與任務相關的.對於分類任務,標籤值 y 包含的資訊量為 info y ln p y 其中,p y 為 y 出現的概率.p y 越小,y 包含的資訊量越大.這是符合直覺的.熵定義為資訊的期望值.乙個可以分為 m 類的資料集 s 它的資訊熵為隨機得到的乙個label包含的資訊量的期望值 ...

熵 資訊增益 資訊增益率

介紹資訊增益之前,首先需要介紹一下熵的概念,這是乙個物理學概念,表示 乙個系統的混亂程度 系統的不確定性越高,熵就越大。假設集合中的變數x 它對應在集合的概率分別是p 那麼這個集合的熵表示為 舉乙個的例子 對遊戲活躍使用者進行分層,分為高活躍 中活躍 低活躍,遊戲a按照這個方式劃分,使用者比例分別為...