问题应该是直截了当的,但无论如何我都迷失了......
我有n个样本,并且已经计算了距离矩阵(b.c。我不想使用欧氏距离,也找不到指定另一个距离度量的方法,例如knn()函数)。
然后我找到了(knn_1,knn_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(后两个计算距离),但到目前为止还没有找到任何东西。
非常感谢!