信息量_熵_條件熵_相對熵_交叉熵_互信息_信息增益_信息增益比

 

python機器學習-乳腺癌細胞挖掘(博主親自錄製視頻)https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

 

 


轉載: https://blog.csdn.net/xg123321123/article/details/52864830

熵與信息增益

在決策樹算法中,決定特徵優先級時,須要用到熵的概念,先挖個坑python

1 信息量

信息量是用來衡量一個事件的不肯定性的;一個事件發生的機率越大,不肯定性越小,則它所攜帶的信息量就越小。算法

假設X是一個離散型隨機變量,其取值集合爲XX,機率分佈函數爲p(x)=Pr(X=x),xXp(x)=Pr(X=x),x∈X,咱們定義事件X=x0X=x0的信息量爲: 
markdown

 
I(x0)=log(p(x0))I(x0)=−log(p(x0))
p(x0)=1p(x0)=1時,熵將等於0,也就是說該事件的發生不會致使任何信息量的增長。

 

舉個例子,小明考試常常不及格,而小王則常常得滿分,因此咱們能夠作以下假設: 
事件A:小明考試及格 
機率爲
機器學習

 
P(xA)=0.1P(xA)=0.1
信息量爲
 
I(xA)=log(0.1)=3.3219I(xA)=−log(0.1)=3.3219

事件B:小王考試及格 
機率爲
 
P(xB)=0.999P(xB)=0.999
信息量爲
 
I(xB)=log(0.999)=0.0014I(xB)=−log(0.999)=0.0014

能夠看出:小明及格的可能性很低(10次考試只有1次及格),所以若是某次考試及格了(你們都會說:XXX居然及格了!),必然會引入較大的信息量,對應的I值也較高;而對於小王而言,考試及格是大機率事件,在事件B發生前,你們廣泛認爲事件B的發生幾乎是肯定的,所以當某次考試小王及格這個事件發生時並不會引入太多的信息量,相應的I值也很是的低。

 

這跟《黑天鵝》一書中強調的「黑天鵝事件每每有重大影響」有殊途同歸之妙。ide

2 熵

熵是用來衡量一個系統的混亂程度的,表明一個系統中信息量的總和;信息量總和越大,代表這個系統不肯定性就越大。函數

假設小明的考試結果是一個0-1分佈XAXA只有兩個取值{0:不及格,1:及格}。那麼在某次考試結果公佈前,根據先驗知識,小明及格的機率僅有10%,其他90%的可能都是不及格的。學習

在上面章節,咱們能夠分別獲得小明和小王考試及格對應的信息量。 
而若是咱們想要進一步度量小明考試結果的不肯定度,就要藉助於熵的概念。
編碼

信息量用來衡量一個事件的不肯定度,熵則用來衡量一個系統(也就是全部事件)的不肯定度。atom

那如何度量系統中全部事件的不肯定度?指望。spa

咱們對全部可能事件所帶來的信息量求指望,其結果就能衡量小明考試的不肯定度:

 

 
HA(x)=[p(xA)log(p(xA))+(1p(xA))log(1p(xA))]=0.4690HA(x)=−[p(xA)log(p(xA))+(1−p(xA))log(1−p(xA))]=0.4690

 

與之對應地,小王的熵: 

 
HB(x)=[p(xB)log(p(xB))+(1p(xB))log(1p(xB))]=0.0114HB(x)=−[p(xB)log(p(xB))+(1−p(xB))log(1−p(xB))]=0.0114

雖然小明考試結果的不肯定度較低,畢竟十次有9次都不及格;可是小王考試結果的不肯定度更低,1000次考試只有1次不及格的機會,結果至關的肯定。

 

再假設一個成績相對普通的學生小東,他及格的機率是P(xC)=0.5P(xC)=0.5,即及格與否的機率是同樣的,對應的熵: 

 
HC(x)=[p(xC)log(p(xC))+(1p(xC))log(1p(xC))]=1HC(x)=−[p(xC)log(p(xC))+(1−p(xC))log(1−p(xC))]=1

 

小東考試結果的不肯定度比前邊兩位同窗要高不少,在成績公佈以前,很難準確猜想出他的考試結果。

從上面能夠看出,熵是信息量的指望值,它是一個隨機變量的肯定性的度量。 
熵越大,變量的取值越不肯定;反之,熵越小,變量取值就越肯定。

對於一個隨機變量X,它全部可能取值的信息量的指望E[I(x)]E[I(x)]就稱爲熵。 
X的熵定義爲: 

 
H(X)=Eplog1p(x)=xXp(x)logp(x)H(X)=Eplog⁡1p(x)=−∑x∈Xp(x)log⁡p(x)

若是p(x)p(x)是連續型隨機變量的p(df)p(df),則熵定義爲: 
 
H(X)=xXp(x)logp(x)dxH(X)=−∫x∈Xp(x)log⁡p(x)dx

爲了保證有效性,這裏約定當p(x)0p(x)→0時,有p(x)logp(x)0p(x)log⁡p(x)→0

 

假如X爲0-1分佈,當兩種取值的可能性相等時(p=0.5),不肯定度最大(此時沒有任何先驗知識);當p=0或1時,熵爲0,即此時X徹底肯定。 
熵與機率p的關係以下圖:

這裏寫圖片描述

注:熵的單位隨着公式中log運算的底數而變化,當底數爲2時,單位爲「比特」(bit),底數爲e時,單位爲「奈特」。

3 條件熵

在隨機變量X發生的前提下,隨機變量Y發生所新帶來的熵定義爲Y的條件熵,用H(Y|X)H(Y|X)表示,用來衡量在已知隨機變量X的條件下隨機變量Y的不肯定性。

若是這樣說顯得空洞,那麼能夠進行轉換:

 

 
H(Y|X)=H(X,Y)H(X)H(Y|X)=H(X,Y)–H(X)
上式表示(X,Y)發生所包含的熵減去X單獨發生包含的熵。推導以下:

 

這裏寫圖片描述

4 相對熵

相對熵(relative entropy)又稱爲KL散度(Kullback-Leibler divergence),KL距離,是兩個隨機分佈間距離的度量。 
記爲DKL(p||q)DKL(p||q),它度量當真實分佈爲p時,假設分佈q的無效性。

 

 
DKL(p||q)=Ep[logp(x)q(x)]=xχp(x)logp(x)q(x)DKL(p||q)=Ep[logp(x)q(x)]=∑x∈χp(x)logp(x)q(x)

 
=xχ[p(x)logp(x)p(x)logq(x)]=∑x∈χ[p(x)logp(x)−p(x)logq(x)]

 
=xχp(x)logp(x)xχp(x)logq(x)=∑x∈χp(x)logp(x)−∑x∈χp(x)logq(x)

 
=H(p)xχp(x)logq(x)=−H(p)−∑x∈χp(x)logq(x)

 
=H(p)+Ep[logq(x)]=−H(p)+Ep[−logq(x)]

 
=Hp(q)H(p)=Hp(q)−H(p)

 

而且爲了保證連續性,作以下約定: 
0log00=00log0q=0plogp0=0log00=0,0log0q=0,plogp0=∞ 
顯然,當p=q時,二者之間的相對熵DKL(p||q)=0DKL(p||q)=0 
上式最後的Hp(q)表示在p分佈下,使用q進行編碼須要的bit數,而H(p)表示對真實分佈p所須要的最小編碼bit數。 
基於此,相對熵的意義就很明確了:DKL(p||q)DKL(p||q)表示在真實分佈爲p的前提下,使用q分佈進行編碼相對於使用真實分佈p進行編碼(即最優編碼)所多出來的bit數。

5 交叉熵

交叉熵容易跟相對熵搞混,兩者有所區別。 
假設有兩個分佈p,q,它們在給定樣本集上的交叉熵定義以下: 

 
CEH(p,q)=Ep[logq]=xχp(x)logq(x)=H(p)+DKL(p||q)CEH(p,q)=Ep[−logq]=−∑x∈χp(x)logq(x)=H(p)+DKL(p||q)

能夠看出,交叉熵與相對熵僅相差了H(p),當p已知時,能夠把H(p)看作一個常數,此時交叉熵與KL距離在行爲上是等價的,都反映了分佈p,q的類似程度。 
最小化交叉熵等於最小化KL距離。它們都將在p=q時取得最小值H(p)(由於p=q時KL距離爲0,所以有的工程文獻中將最小化KL距離的方法稱爲Principle of Minimum Cross-Entropy (MCE)或Minxent方法)。

 

在logistic regression中, 
p:真實樣本分佈,服從參數爲p的0-1分佈,即X∼B(1,p) 
q:待估計的模型,服從參數爲q的0-1分佈,即X∼B(1,q) 
二者的交叉熵爲:

 

 
CEH(p,q)=xχp(x)logq(x)CEH(p,q)=−∑x∈χp(x)logq(x)

 
=[Pp(x=1)logPq(x=1)+Pp(x=0)logPq(x=0)]=−[Pp(x=1)logPq(x=1)+Pp(x=0)logPq(x=0)]

 
=[plogq+(1p)log(1q)]=−[plogq+(1−p)log(1−q)]

 
=[yloghθ(x)+(1y)log(1hθ(x))]=−[yloghθ(x)+(1−y)log(1−hθ(x))]

對全部訓練樣本取均值得: 
 
1mim=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]−1m∑im=1m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]

這個結果與經過最大似然估計方法求出來的結果一致。

 

6 信息增益

在決策樹ID3算法中,使用信息增益來選擇最佳的特徵做爲決策點。

信息增益表示得知特徵X的信息而使得類Y的信息不肯定性減小的程度,即用來衡量特徵X區分數據集的能力。 
當新增一個屬性X時,信息熵H(Y)H(Y)的變化大小即爲信息增益。 I(Y|X)I(Y|X)越大表示X越重要。

 
I(Y|X)=H(Y)H(Y|X)I(Y|X)=H(Y)−H(Y|X)

 

7 互信息

兩個隨機變量X,Y的互信息定義爲X,Y的聯合分佈和各自獨立分佈乘積的相對熵,用I(X,Y)表示: 
這裏寫圖片描述

而通常來講,熵H(Y)H(Y)與條件熵H(Y|X)H(Y|X)之差稱爲互信息。推導以下:

這裏寫圖片描述

因此在決策樹算法中,信息增益等價於訓練數據集中類和特徵的互信息。

 

在決策樹C4.5算法中,使用信息增益比來選擇最佳的特徵做爲決策點。

特徵A對訓練數據集D的信息增益比gR(D|A)gR(D|A)定義爲信息增益I(D|A)I(D|A)與訓練數據集D關於特徵A的熵HA(D)HA(D)之比:

 
gR(D|A)=I(D|A)HA(D)gR(D|A)=I(D|A)HA(D)

 

這之中

 
HA(D)=i=1n|Di||D|log2|Di||D|,nAHA(D)=−∑i=1n|Di||D|log2|Di||D|,n是特徵A的取值個數

 


本篇博客主要參考自: 
《信息量、熵、最大熵、聯合熵、條件熵、相對熵、互信息》 
《交叉熵(Cross-Entropy) 》 
《最大熵模型中的數學推導》 
《咱們爲何須要信息增益比,而不是信息增益? 》

歡迎關注博主主頁,學習python視頻資源

相關文章
相關標籤/搜索