2017-04-16 40 views
0

我想要計算2個概率分佈之間的Python散度。DIT和Scipy中KL散度結果的差異

首先我用dit

from dit.divergences import kullback_leibler_divergence 
p = dit.Distribution(['0', '1'], [3/4, 1/4]) 
q = dit.Distribution(['0', '1'], [1/2, 1/2]) 
kullback_leibler_divergence(p, q) 

這將返回0.1887

如果我嘗試使用scipy

from scipy.stats import entropy 
p = [3/4, 1/4] 
q = [1/2, 1/2] 
entropy(p,q) 

這將返回0.1308

爲什麼做同樣的lib differen結果?

回答

3

對數基數不同。 dit使用log_2,而scipy使用log_e。