我有一个变量,其值类似于 [23.13, 56.1, 12.6, 1.23, 5.56]。我想找到这个变量的熵。我在这里得到了一个代码如何计算 N 个变量的香农熵和互信息,但对于连续变量应该首选什么 bin 大小?
不存在“最佳”箱大小(除非您的值属于明显不同的簇)。
对于连续分布,最好使用 Kozachenko-Leonenko k 最近邻熵估计器 (K & L 1987) 和相应的 Kraskov, ..., Grassberger (2004) 互信息估计器。
Kozachenko-Leonenko 估计器的基本思想是查看相邻数据点之间的平均距离(的某个函数)。直觉是,如果距离很大,数据的分散性就很大,因此熵也很大。在实践中,人们倾向于采用 k 最近邻距离,而不是采用最近邻距离,这往往会使估计更加稳健。
我在我的 github 上都有实现: https: //github.com/paulbrodersen/entropy_estimators。