前言
熵在機器學習中用的非常普遍,但這個又難以理解,經常忘記,寫一篇部落格記錄一下,也方便其他人學習了解。
什麼是熵
一開始接觸熵是大二的資訊理論,非常難的一門課,當時學的時候不知道這個東西有什麼用,完全就不太想學,因為不知道幹嘛,也不知道學了有什麼用,但是現在很後悔,定義:熵也叫資訊熵,可以表徵隨機變數分布的混亂程度,分布越混亂,則熵越大,簡易的解釋就是:在乙個隨機事件中,某個事件發生的不確定度越大,熵也就越大,事件發生的概率越小,不確定度越大,熵也越大。熵在物理學上表徵物質狀態的參量之一,也是體系混亂程度的度量;熵存在的意義是度量資訊量的多少,人們常常說資訊很多,或者資訊較少,但卻很難說清楚資訊到底有多少,熵就是乙個度量的單位,你也可以把他與千克、公釐等單位相比較增加理解,千克是重量單位,公釐是長度度量單位,所以用熵來度量資訊。其實熵還可以用來度量其他的很多內容,特別是在物理領域,但這裡不加追述,可以參考部落格。
熵的計算
熵是資訊的度量,資訊是事件的發生,我們可以通過如下公式來計算資訊熵:
h(x)=−∑inp(xi)log2p(xi)h(x)=-\sum_^p(x_i)\log_p(x_i)h(x)=−i∑np(xi)log2p(xi)
這裡其實有一點要說明,沒有要求一定是取對數2,也可以取對數e作為底,具體看,從公式可以看出,資訊熵h(x)h(x)h(x)是各項自資訊的累加值,由於每一項都是整正數,故而隨機變數取值個數越多,狀態數也就越多,累加次數就越多,資訊熵就越大,混亂程度就越大,純度越小。越寬廣的分布,熵就越大,在同樣的定義域內,由於分布寬廣性中脈衝分布 < 高斯分布 < 均勻分布,故而熵的關係為脈衝分布資訊熵 < 高斯分布資訊熵 < 均勻分布資訊熵。同樣我們可以看到熵的計算只與事件概率有關,跟事件對應的值無關係,比如:拋硬幣,硬幣為正面概率是0.5,如果是正面,我得到7元,反面你得到5元錢,熵是不會考慮事件的取值。
公式約束了 0log0=00\log0=00log0=0,畢竟有些事情不會發生,但這種情況也不會被我們考慮,給個約束還是可以的。
同樣熵也是聚焦在整個大資料集上的,或者說是統計意義上的,某不是某次實際的樣本資料,而是當樣本資料無限多個的時候,熵才有意義,就像拋硬幣,拋無窮多次,總體的情況可以用熵來表示。
推廣到多維隨機變數的聯合分布,其聯合資訊熵:
h(x,y)=−∑in∑jmp(xi,yj)log2p(xi,yj)h(x,y)= -\sum_^n \sum_^mp(x_i,y_j)\log_2p(x_i,y_j)h(x,y)=−i∑nj∑mp(xi,yj)log2p(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)=−(45log245)−(15log215)=0.72187h(d∣a)=−25(12log(12)+12log(12))−15(1log1)−25(1log1+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)=−(54log254)−(51log251)=0.72187=−52(21log(21)+21log(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按照這個方式劃分,使用者比例分別為...