由于聚类是非监督式的, 标准答案可用于验证 结果。缺乏可信度会使质量评估变得更加复杂。此外, 如示例中所示,现实世界数据集通常不会 如图 1 所示。
![一张显示三组清晰数据点的图表](https://developers.google.cn/machine-learning/clustering/images/Clustered.png?authuser=1&hl=ca)
相反,现实世界的数据通常更像图 2,因此很难 直观评估聚类质量。
![包含随机数据点的图表](https://developers.google.cn/machine-learning/clustering/images/Unclustered.png?authuser=1&hl=ca)
不过,您可以反复应用启发法和最佳做法 以提高聚类质量。以下流程图提供了 概述如何评估聚类结果。我们稍后会进一步 操作。
第 1 步:评估聚类质量
首先,检查集群外观是否符合您的预期, 会认为它们彼此相似。
然后查看以下常用指标(并非详尽无遗):
- 集群基数
- 星团幅度
- 下游性能
集群基数
聚类基数是每个聚类的样本数。绘制 集群基数,并调查 都是主要离群值。在图 2 中,这将是聚类 5。
![显示基数的条形图
多个集群中。集群 5 小于其余集群 5。](https://developers.google.cn/machine-learning/clustering/images/ClusterCardinality.png?authuser=1&hl=ca)
星团幅度
聚类大小是与聚类中所有样本的距离之和 聚类的形心绘制所有聚类和聚类的震级 来研究离群值。在图 3 中,聚类 0 是一个离群值。
此外,还要考虑查看样本的最大或平均距离 来找出离群值。
![一张条形图,显示了
多个集群集群 0 比其他集群 0 大得多。](https://developers.google.cn/machine-learning/clustering/images/ClusterMagnitude.png?authuser=1&hl=ca)
数量级与基数
您可能已经注意到,集群基数越高,对应的 这很直观,因为聚类中的点越多, 则这些聚类(基数)的距离可能越大, 与形心(量级)之间的距离。您还可以找出异常集群 寻找基数与数量级之间有这种关系的实验 与其他集群有很大不同在图 4 中,将一条线 基数和大小图表明聚类 0 存在异常。 (聚类 5 也离该行很远,但如果省略聚类 0,则新的 拟合的线会更接近聚类 5。)
![显示散点图
几个聚类的基数与量级。一个
是图中的离群值。](https://developers.google.cn/machine-learning/clustering/images/CardinalityVsMagnitude.png?authuser=1&hl=ca)
下游性能
由于聚类输出通常用在下游机器学习系统中,请查看 下游模型的性能随着聚类过程的更改而提高。 这提供了对聚类结果质量的真实评估, 不过,开展这类测试可能复杂且昂贵。
第 2 步:重新评估相似度衡量指标
聚类算法的效果取决于相似度度量。请确保 相似度度量会返回合理的结果。不妨快速检查一下 识别已知相似或不太相似的样本对。计算 相似度度量,并将结果与 知识:相似样本对的相似度应更高 而不是两对不同的样本对。
用于抽查相似度度量的样本应为 具有代表性的特征,因此您可以确信 评估所有样本的保全。您的 相似度衡量(无论是手动还是监督)在 Google Cloud 中的 数据集。如果某些样本的相似性度量不一致, 不会与相似的样本进行聚类。
如果您发现样本的相似度分数不准确, 评估指标可能无法完全捕获用于区分 示例。对相似度度量进行实验,直到返回更多结果 准确性和一致性。
第 3 步:找到最佳数量的聚类
k-means 需要您事先确定聚类的数量。 \(k\) 如何 确定最优 \(k\)?尝试使用以下算法运行算法: \(k\) 值递增,并记下所有聚类规模的总和。如 \(k\) 逐渐增加,聚类变小,点的总距离 使心形变小我们可以将这些总距离视为损失。 根据聚类的数量绘制此距离。
如图 5 所示,当超过特定 \(k\)时,损失的减少幅度变为 边际 \(k\)。不妨考虑使用 \(k\) 其中斜率先有一个明显的变化,称为 elbow 方法。对于 则得到的最佳 \(k\) 约为 11。如果您希望 则可以参考此图表,选择更高的 \(k\)。
![显示损失的图表
集群数量损失随着集群数量的增加而减少,
它会将大约 10 个集群](https://developers.google.cn/machine-learning/clustering/images/OptimumClusters.png?authuser=1&hl=ca)
问题排查问题
如果您在评估过程中发现问题,请重新评估您的数据 准备步骤和选择的相似性度量。问题:
- 您的数据是否得到适当调整?
- 您的相似度度量正确吗?
- 您的算法是否对数据执行语义上有意义的操作?
- 算法的假设与数据是否相符?