有什么好的聚类算法,如果两个数据项之间的间隔小于用户指定的临界值,则将它们简单地放入同一集群中?
即X_clustering(data, distance, epsilon)
的结果是一组集群分配,因此对于i,j
而言,对于任何一对distance(data[i], data[j]) < epsilon
,它们都位于同一集群中。如果为distance(data[i], data[j]) >= epsilon
,则它们可以位于不同的群集中(如果没有其他数据最终链接到它们……)。
另一种说明方式是:i,j
位于同一集群中,如果存在通过数据的路径[i, x, y, z..., j]
,使得每一步都是distance<epsilon
,并且它们是不同的如果没有这样的路径,则群集。
答案 0 :(得分:0)
您的想法行不通。如果对于群集中的所有(data[i], data[j])
对,它们的距离都小于给定的epsilon
,则意味着该群集中的所有成员都位于半径为epsilon
的圆中。因此,这种聚类方法不能一概而论。
顺便说一句,在基于给定epsilon
的簇的密度来确定簇的情况下,DBSCAN是一种很好的簇算法。您可以通过添加更强的约束来修改此算法,例如:
如果每个数据与群集中所有成员的距离小于给定的epsilon
,则可以将每个数据添加到群集中。