2015-09-16 52 views
1

我需要使用k-NN密度估计算法找到数据集内每个点的密度。我理解用于计算的基本方法,如以下屏幕截图所示。 Complete slides at [link] enter image description here使用R估计K_NN

我想知道R中是否有任何库提供函数来计算K-NN密度估计。虽然在stackoverflow的同一主题上有一些相关的问题,但没有一个得到正确的回答。

注意:我发现这个question有关,但同样的答案不起作用。

+0

没有回答? http://stackoverflow.com/questions/5840983/knn-density-estimation-r – hrbrmstr

+0

@hrbrmstr,我同意你的看法。但答案并不能提供我所要求的。 –

回答

0

虽然我没有找到任何R软件包来计算一个点的密度。但是,我按照这些步骤来计算每个点的密度:

  1. 我为绘图上的所有给定点(散点图)创建一个距离矩阵。因此,对于N个点,我有N×N的距离矩阵,其中每个元素(i,j)表示第i个第j 点之间的距离Eucledian。
  2. 现在使用距离矩阵,对于每个点(按递增顺序)整理出相对于其他点的距离。因此,现在如果我想要的邻居的距离,我只是选择排序的距离。
  3. With Kth邻居距离,我得到圆的半径。因此,现在我可以用上图中显示的公式替代半径值。有了这个,我可以计算一个点的密度。

注意:在R,邻居根据使用顺序()函数距离来分类