kozachenko-leonenko 熵估计

机器算法验证 密度函数 k-最近邻
2022-04-19 01:43:09

我正在尝试基于Kozachenko 和 Leonenko的最近邻居来实现熵估计,但我遇到了一个我无法解决的问题。

这个想法是在一个新的集合中工作ϵ={ϵ1,...ϵN} 代替 {x1,...,xN} 在哪里ϵ(i)是之间的距离xi和它最近的邻居。

其估计量公式为:

H^(X)=ψ(1)+ψ(N)+i=1Nlog(ϵ(i)) 在哪里ψ是二伽马函数。

但如果两个xi相等或如果X是一个常数变量,那么一个ϵi=0H^(X)=.

文章中没有处理这些情况,我不知道如何调整公式。不计算空ϵi总而言之不是一个好主意。

有人有想法吗?

1个回答

改用第 k 个最近邻,因为 k 与获得所需的 k 一样大ϵi>0. 为了在 Kozachenko-Leonenko 估计器中反映这一点,只需替换ψ(1)ψ(k). 由于它允许从点到点改变 k,因此您可以例如每次都寻找“最近的不同邻居”。(如果你发现你所有xi要相等,只需设置H^(X)=0.)