use*_*883 10 cluster-analysis machine-learning distance cosine-similarity
我有一个大型数据集,我想集群.我的试运行集大小是2,500个对象; 当我在'真正的交易'上运行时,我将需要处理至少20k的对象.
这些对象之间具有余弦相似性.该余弦相似性不满足作为数学距离度量的要求; 它不满足三角不等式.
我想以一种"自然"的方式将它们聚类在一起,将类似的对象放在一起,而不需要事先指定我期望的簇数.
有谁知道会这样做的算法?真的,我只是在寻找不需要a)距离度量和b)预先指定数量的簇的任何算法.
非常感谢!
这里之前已经提出过这个问题: 从余弦相似度值聚类 (但这个解决方案只提供K均值聚类),这里: 相似度矩阵的有效聚类 (但这个解决方案相当含糊)
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。