10 資訊熵與交叉熵推導

2021-09-28 14:37:40 字數 1738 閱讀 3843

人們常常說資訊很多,或者資訊較少,但卻很難說清楚資訊到底有多少。比如一本五十萬字的中文書到底有多少資訊量,夏農(資訊理論之父)提出了「資訊熵」的概念,資訊熵用來描述信源的不確定度,熵在資訊理論中代表隨機變數不確定度的度量。熵越大,資料的不確定性越高,熵越小,資料的不確定性約低

當得知乙個特徵條件之後,減少的資訊熵的大小我們稱為資訊增益 (32支球隊如果沒有任何資訊可能猜32次才猜到)

資訊熵 (推薦)、基尼係數都是用來衡量資訊量大小的度量

同等了數量情況下,概率均等的資料,它的資訊熵最大

指數是冪運算aⁿ(a≠0)中的乙個引數,a為底數,n為指數。對數是對求指數的逆運算,正如除法是乘法的倒數,反之亦然。 這意味著乙個數字的對數是必須產生另乙個固定數字(基數)的指數

import numpy as np

# 指數運算就是冪運算

x =10**2

print

(x)# 對數是指數的逆運算

print

(np.log10(x)

)print

('-'

*100

)# 10為底為常用對數

print

(np.log10(10)

)# 2為底則為二進位制對數

print

(np.log2(8)

)# 預設是自然對數e

print

(np.log(np.e)

)

entropy代表資訊熵,i 表示資料總類別數,p(i) 表示類別 i 樣本數量佔所有樣本的比例

#  採用二分法,猜二分類,在樣本平均時資訊熵為1

h =-(1

/2* np.log2(1/

2)+1

/2* np.log2(1/

2))print

(h)# 樣本不平均是資訊熵會減少

h =-(3

/4* np.log2(3/

4)+1

/4* np.log2(1/

4))print

(h)# ==> 1.5849

h =-(1

/3* np.log2(1/

3)+1

/3* np.log2(1/

3)+1

/3* np.log2(1/

3))print

(h)# 資訊熵為0 則代表100%確定

h =-(1

* np.log2(1/

1))print

(h)# 32支球隊在奪冠機會均等的情況下, 資訊熵為5,也可以理解採用二分法,拆5次可以拆到冠軍

h =-(1

/32* np.log2(1/

32))*

32

y_true =[0

,0,1

]y_predict =[0

.,0.

,1]h =

-(y_true * np.log(y_predict)

)print

(h)

資訊熵,交叉熵和相對熵

怎樣去量化資訊?一些大牛對某些問題的見解,我們會說乾貨滿滿,就代表這個見解具有很大的資訊。對於一些不太確定的事,比如一場足球比賽的結果,會有勝平負三種情況,有不確定的情況,但如果某人有直接的內幕訊息,說這場主隊穩輸,因為 這樣的乙個資訊就具有很大的資訊量了,因為不確定的事情變得十分確定。如果有人告訴...

熵與交叉熵

針對引文中的問題 如果乙個字出現的頻率為yi 則該字所使用的編碼bit數為lo g1yi 如果整段文字的概率分布都已知,那我們可以得出編碼乙個字所需的最優bit數 h y iyil og1y i 其中h y 就是熵 如果我們已知的是乙個錯誤的分布,並且使用該分布確定的編碼bit數,稱為交叉熵h y ...

資訊量 資訊熵 交叉熵 相對熵

1 資訊量 陳羽凡吸毒?工作室不是剛闢謠了嗎?哇!資訊量好大!在生活中,極少發生的事情最容易引起吃瓜群眾的關注。而經常發生的事情則不會引起注意,比如吃瓜群眾從來不會去關係明天太陽會不會東邊公升起。資訊量的多少與事件發生概率的大小成反比。對於已發生的事件i,其所提供的資訊量為 其中底數通常為2,負號的...