我在更新 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 . .
我需要逐行处理(例如:一行是中心)。我计算了具有余弦相似度的聚类。现在我想更新每个集群的中心。但我不知道该怎么做。请帮助我。(每一行包含文档中不同单词的迭代次数。)谢谢
我在更新 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 . .
我需要逐行处理(例如:一行是中心)。我计算了具有余弦相似度的聚类。现在我想更新每个集群的中心。但我不知道该怎么做。请帮助我。(每一行包含文档中不同单词的迭代次数。)谢谢
实际上有一种算法可以使用余弦度量,称为球面 k 均值。
有关详细信息,请参阅
http://www.cs.gsu.edu/~wkim/index_files/papers/refinehd.pdf http://nirmalthapa.wordpress.com/2011/05/05/spherical-k-means-clustering-algorithm/
k-means 是为 Euclidean disance 设计的,而不是其他指标。
虽然起初看起来好像您可以轻松使用任何其他距离函数,但问题实际上是均值函数。
对于欧几里得距离,算术平均值将使方差最小化,从而确保算法的终止。对于曼哈顿距离,您可以改用中心点(参见 k-中心点聚类)。
但是如果你加入任意其他距离函数,k-means 可能会陷入无限循环(即停止收敛)。所以在使用其他距离时要小心,并考虑使用比 k-means 更高级/现代的算法。