-1

我一直在尝试 scipy 中的 kmeans 聚类算法实现。是否有任何标准的、定义明确的指标可用于衡量生成的集群的质量?

即,我有由 kmeans 聚类的数据点的预期标签。现在,一旦我得到已经生成的集群,我如何评估这些集群相对于预期标签的质量?

4

3 回答 3

1

当时我正在使用 Spark 的 KMeans 做这件事。

我在用:

这两个数量都承诺一个更好的集群,当它们都很小时(越少越好)。

于 2016-08-31T03:06:00.933 回答
0

在您的情况下,当您确实拥有样本真实标签时,验证非常容易。首先,计算混淆矩阵(http://en.wikipedia.org/wiki/Confusion_matrix)。然后,从中得出所有相关度量:真阳性、假阴性、假阳性和真阴性。然后,您可以找到 Precision、Recall、Miss rate 等。

确保您理解以上所有内容的含义。它们基本上告诉您您的聚类预测/识别数据的真实性质的程度。

如果您使用的是 python,只需使用 sklearn 包: http ://scikit-learn.org/stable/modules/model_evaluation.html

此外,最好运行一些内部验证,以查看您的集群分离得如何。有已知的内部有效性度量,例如:Silhouette DB index Dunn index Calinski-Harabasz measure Gamma score Normalized Cut 等。

在这里阅读更多:集群有效性指数的广泛比较研究 Olatz Arbelaitz , Ibai Gurrutxaga, , Javier Muguerza , Jesús M. Pérez , Iñigo Perona

于 2014-11-09T07:49:35.287 回答
0

Kmeans 试图最小化到聚类中心的平方距离之和。如果您按预期标签排序,我将使用您获得的集群将结果与 Kmeans 集群进行比较。

结果有两种可能。如果 KMeans 平方和大于预期的标签聚类,那么您的 kmeans 实现是错误的,或者没有从一组好的初始聚类分配开始,您可以考虑增加使用或调试它的随机启动数。如果 KMeans 平方和小于预期标签聚类平方和,并且 KMeans 聚类与预期标签聚类不太相似(即,

于 2014-11-09T05:36:15.280 回答