基于距离矩阵的KNN实现

时间:2017-10-04 17:30:09

标签: r algorithm cluster-analysis nearest-neighbor

问题应该是直截了当的,但无论如何我都迷失了...... 我有n个样本,并且已经计算了距离矩阵(b.c。我不想使用欧氏距离,也找不到指定另一个距离度量的方法,例如knn()函数)。
然后我找到了(knn_1knn_2)并用它们从距离矩阵中得到最近的邻居(据我所知,它只是按行排序)。
现在,我开始知道任何群集,然后需要插入任何新的数据点。
基本上我的问题是,如何初始化集群。

举例说明我的问题:让我们假设我们最近的邻居(k = 2,n = 4)如下:

i = 1: 2,3  
i = 2: 3,4  
i = 3: 1,3  
i = 4: 1,2  

您如何找到群集?
我的想法:首先将i = 1分配给集群1,然后将最近的邻居(2,3)分配给它。但基于这种逻辑,最终一切都将在这一个集群中,因为它只是传播 那么,下一个想法:首先将k个元素分配给k cluster。即将i = 1分配给集群1,将i = 2分配给集群2,将i = 3分配给集群3.但是我有什么理由呢?这对于k-means聚类是有意义的,但对KNN没有意义...
将每个元素添加到其自己的集群中,然后合并它们。听起来不错,但不知道怎么做......

如果您知道任何基于距离矩阵进行KNN聚类的R包,那正是我想要的!我已经研究过FastKNN,类,代理和philentropy(后两个计算距离),但到目前为止还没有找到任何东西。

非常感谢!

0 个答案:

没有答案