2017-08-09 201 views
0

我有一個變量,其值類似於[23.13,56.1,12.6,1.23,5.56]。我想找到這個變量的熵。我在這裏得到了一個代碼How to compute the shannon entropy and mutual information of N variables,但是對於連續變量,bin大小應該是首選?如何在Python中找到連續變量的熵?

+0

[如何計算shannon熵和N個變量的互信息]可能的副本(https://stackoverflow.com/questions/24144777/how-to-compute-the-shannon-entropy-and-mutual-information -of正變量) – msalperen

回答

0

沒有「最佳」垃圾箱大小(除非您的值屬於明顯不同的集羣)。

對於連續分佈,最好使用Kozachenko-Leonenko的k最近鄰估計熵(K & L 1987)和相應的Kraskov,...,Grassberger(2004)估計互信息。

Kozachenko-Leonenko估計量的基本思想是查看相鄰數據點之間的平均距離(的某個函數)。直覺是,如果這個距離很大,數據中的離差很大,因此熵很大。在實踐中,不是採用最近的鄰居距離,而是傾向於採用k-最近鄰居距離,這往往會使估計更穩健。

我在我的github上都有兩個實現:https://github.com/paulbrodersen/entropy_estimators