我在使用k-means更新中心时遇到问题。 我的数据如下:
1 0 5 6 2 3 5 7 2 5 0 8 6 1 0 5 . . . 2 5 6 4 2 1 0 8 . .
我需要按行处理行(例如:一行是中心)。我计算了具有余弦相似性的聚类。现在我想更新每个集群的中心。但我不知道我该怎么做。请帮助我。 (每行包含文档中不同单词的迭代次数。) 感谢
答案 0 :(得分:3)
实际上有一种算法可以使用余弦度量,称为球面k均值。
有关详细信息,请参阅
http://www.cs.gsu.edu/~wkim/index_files/papers/refinehd.pdf http://nirmalthapa.wordpress.com/2011/05/05/spherical-k-means-clustering-algorithm/
答案 1 :(得分:1)
k-means是针对欧几里德的判决设计的,而不是针对其他指标。
虽然起初看起来好像你可以轻松使用任何其他距离函数,但问题实际上是 mean 函数。
对于欧几里德距离,算术平均值将最小化方差,这样可以确保算法的终止。对于曼哈顿距离,您可以使用medoid(参见k-medoids聚类)。
但是如果你投入任意其他距离函数,k-means可能会遇到无限循环(即停止收敛)。因此在使用其他距离时要小心,并考虑使用比k-means更先进/更现代的算法。