具有余弦相似性的聚类

use*_*883 10 cluster-analysis machine-learning distance cosine-similarity

我有一个大型数据集,我想集群.我的试运行集大小是2,500个对象; 当我在'真正的交易'上运行时,我将需要处理至少20k的对象.

这些对象之间具有余弦相似性.该余弦相似性不满足作为数学距离度量的要求; 它不满足三角不等式.

我想以一种"自然"的方式将它们聚类在一起,将类似的对象放在一起,而不需要事先指定我期望的簇数.

有谁知道会这样做的算法?真的,我只是在寻找不需要a)距离度量和b)预先指定数量的簇的任何算法.

非常感谢!

这里之前已经提出过这个问题: 从余弦相似度值聚类 (但这个解决方案只提供K均值聚类),这里: 相似度矩阵的有效聚类 (但这个解决方案相当含糊)

Ale*_*son 3

Apache mahout 有许多聚类算法,包括一些不需要您指定 N 且允许您指定距离度量的算法。

均值漂移聚类与 k-means 类似,但没有预先指定的聚类数量https://cwiki.apache.org/confluence/display/MAHOUT/Mean+Shift+Clustering

然后更一般地说,如果您想尝试各种算法,R 有绝对丰富的复杂包可供使用(包括 EM 的一些变分贝叶斯实现,它将选择最佳数量的簇),这已被证明非常有用我过去的一些研究:http://cran.r-project.org/web/views/Cluster.html