【发布时间】:2017-08-09 13:22:58
【问题描述】:
我有一个变量,其值类似于 [23.13, 56.1, 12.6, 1.23, 5.56]。我想找到这个变量的熵。我在这里得到了一个代码How to compute the shannon entropy and mutual information of N variables,但是对于连续变量,应该首选哪个 bin 大小?
【问题讨论】:
我有一个变量,其值类似于 [23.13, 56.1, 12.6, 1.23, 5.56]。我想找到这个变量的熵。我在这里得到了一个代码How to compute the shannon entropy and mutual information of N variables,但是对于连续变量,应该首选哪个 bin 大小?
【问题讨论】:
没有“最佳”的 bin 大小(除非您的值属于明显不同的集群)。
对于连续分布,最好使用 Kozachenko-Leonenko k-nearest neighbor estimator for entropy (K & L 1987) 和相应的 Kraskov, ..., Grassberger (2004) 估计互信息。
Kozachenko-Leonenko 估计器的基本思想是查看相邻数据点之间的平均距离(某个函数)。直觉是,如果该距离很大,则数据的分散性很大,因此熵也很大。在实践中,人们倾向于采用 k-最近邻距离,而不是采用最近邻距离,这往往会使估计更加稳健。
我的 github 上都有这两个实现:https://github.com/paulbrodersen/entropy_estimators。
【讨论】:
我们可以创建变量的直方图并使用 bin 来创建有限的类别集。这将作为连续变量的离散版本。或者计算第 n 个百分位数并将它们用作类别。
【讨论】: