用于从真实数据中估计微分熵的最先进的库

State of the art library for estimating differential entropy from real data

我正在寻找一个最先进的库来估计有限样本的微分熵。在理想的世界中,它将具有以下功能:

我有哪些选择?

首先:题外话,因为有 https://softwarerecs.stackexchange.com/ 这类问题(但我个人不介意)。

其次,你不能证明否定,但如果你的数据是连续的和多维的,我想说可能没有什么能满足所有这些条件的-盒子。

我已经在 python 中实现了 Kraskov 估计器和一系列相关措施,因为当时除了 Mathworks 交易所上用 MATLAB 编写的几个可疑脚本外,没有任何其他公开可用的脚本( my project can be found here)。大多数繁重的工作要么被推到 C(因为我使用 cKDTree 找到最近的邻居)或推到 LAPACK/BLAS(即 Fortran),所以我认为没有太多收获通过进一步优化。至少对于我的数据集,python "overhead" 与其他所有内容相比都很小。 我没有对存储库的已发布版本进行任何偏差校正。这是设计使然,因为我认为如果变量之间的相互作用足够小以至于您需要担心偏差,那么您 真的 需要担心它。所有偏差校正方法都有一堆假设,提供任何开箱即用的东西弊大于利,IMO。

然后是 NPEET,它也在 python 中,也是围绕 Kraskov 估计器构建的,与我的东西非常非常相似(事实上,当我第一次阅读source,我以为他们已经分叉了我的 repo,直到我看到他们在我之前一个月首次发布了他们的代码)。

最后,还有 MINE,Joshua Bengio 小组开发的算法。他们的方法在概念上与 Kozachenko/Kraskov 非常不同,读起来非常有趣。他们去年发布了他们的方法,但 github 上已经有几个实现。我还没有机会亲自尝试,也没有详细研究任何实现,所以我对它没有一个明智的意见(除此之外,我是 Joshua Bengio 的一般工作的忠实粉丝).这篇论文看起来很有前途,但到目前为止我还没有看到独立的评估(但这并不意味着没有)。然而,他们正在用小批量训练梯度下降的神经网络来估计互信息,所以我不指望它会很快。完全没有。

对于 discrete/binned 数据,有 Ilya Nemenman's NSB estimator,它勾选了除第一个以外的所有方框,这大概是您的关键标准。