您好 我是Cluster的新手,我不知道哪种算法适合我的任务。让我来描述我的任务:
例如,首先我们有以下矩阵
| p1 | p2 | p3 |
---|----|----|----|
p1 | | | |
p2 | d1 | | |
p3 | d2 | d3 | |
在聚类之后,我们添加一个新点,并且还给出了距离:
| p1 | p2 | p3 | p4 |
---|----|----|----|----|
p1 | | | | |
p2 | d1 | | | |
p3 | d2 | d3 | | |
p4 | d4 | d5 | d6 | |
这里的问题是速度,我希望群集是增量群集,即后面的群集可以利用以前的结果。因为我们会经常添加点(如果我们找到一个点),并且每次我们重新聚类点。即使集群本身具有O(n),集群的总时间也将为O(n ^ 2)。
有什么建议吗?
由于
答案 0 :(得分:2)
一种选择是修复群集数量(例如,您有K群集)。每当添加新点时,都会将其添加到其重心(群集中点的坐标平均值)最接近您添加的点的群集中。如果您的空间中的点数变为2的幂(1,2,4,8,16,32 ......)时完全重新集群,则重新集群的摊销成本仍为O(n)。