评估结果

由于聚类是非监督式的, 标准答案可用于验证 结果。缺乏可信度会使质量评估变得更加复杂。此外, 如示例中所示,现实世界数据集通常不会 如图 1 所示。

一张显示三组清晰数据点的图表
图 1:理想的数据图。现实世界的数据很少会像这样。

相反,现实世界的数据通常更像图 2,因此很难 直观评估聚类质量。

包含随机数据点的图表
图 2:更真实的数据图

不过,您可以反复应用启发法和最佳做法 以提高聚类质量。以下流程图提供了 概述如何评估聚类结果。我们稍后会进一步 操作。

验证流程的流程图
点击此处查看此图表的大图。

第 1 步:评估聚类质量

首先,检查集群外观是否符合您的预期, 会认为它们彼此相似。

然后查看以下常用指标(并非详尽无遗):

  • 集群基数
  • 星团幅度
  • 下游性能

集群基数

聚类基数是每个聚类的样本数。绘制 集群基数,并调查 都是主要离群值。在图 2 中,这将是聚类 5。

显示基数的条形图
多个集群中。集群 5 小于其余集群 5。
图 2:多个集群的基数。

星团幅度

聚类大小是与聚类中所有样本的距离之和 聚类的形心绘制所有聚类和聚类的震级 来研究离群值。在图 3 中,聚类 0 是一个离群值。

此外,还要考虑查看样本的最大或平均距离 来找出离群值。

一张条形图,显示了
          多个集群集群 0 比其他集群 0 大得多。
图 3:若干聚类的幅度。

数量级与基数

您可能已经注意到,集群基数越高,对应的 这很直观,因为聚类中的点越多, 则这些聚类(基数)的距离可能越大, 与形心(量级)之间的距离。您还可以找出异常集群 寻找基数与数量级之间有这种关系的实验 与其他集群有很大不同在图 4 中,将一条线 基数和大小图表明聚类 0 存在异常。 (聚类 5 也离该行很远,但如果省略聚类 0,则新的 拟合的线会更接近聚类 5。)

显示散点图
          几个聚类的基数与量级。一个
          是图中的离群值。
图 4:前面显示的聚类的基数与量级。

下游性能

由于聚类输出通常用在下游机器学习系统中,请查看 下游模型的性能随着聚类过程的更改而提高。 这提供了对聚类结果质量的真实评估, 不过,开展这类测试可能复杂且昂贵。

第 2 步:重新评估相似度衡量指标

聚类算法的效果取决于相似度度量。请确保 相似度度量会返回合理的结果。不妨快速检查一下 识别已知相似或不太相似的样本对。计算 相似度度量,并将结果与 知识:相似样本对的相似度应更高 而不是两对不同的样本对。

用于抽查相似度度量的样本应为 具有代表性的特征,因此您可以确信 评估所有样本的保全。您的 相似度衡量(无论是手动还是监督)在 Google Cloud 中的 数据集。如果某些样本的相似性度量不一致, 不会与相似的样本进行聚类。

如果您发现样本的相似度分数不准确, 评估指标可能无法完全捕获用于区分 示例。对相似度度量进行实验,直到返回更多结果 准确性和一致性。

第 3 步:找到最佳数量的聚类

k-means 需要您事先确定聚类的数量。 \(k\) 如何 确定最优 \(k\)?尝试使用以下算法运行算法: \(k\) 值递增,并记下所有聚类规模的总和。如 \(k\) 逐渐增加,聚类变小,点的总距离 使心形变小我们可以将这些总距离视为损失。 根据聚类的数量绘制此距离。

如图 5 所示,当超过特定 \(k\)时,损失的减少幅度变为 边际 \(k\)。不妨考虑使用 \(k\) 其中斜率先有一个明显的变化,称为 elbow 方法。对于 则得到的最佳 \(k\) 约为 11。如果您希望 则可以参考此图表,选择更高的 \(k\)。

显示损失的图表
集群数量损失随着集群数量的增加而减少,
它会将大约 10 个集群
图 5:损失与集群数量

问题排查问题

如果您在评估过程中发现问题,请重新评估您的数据 准备步骤和选择的相似性度量。问题:

  • 您的数据是否得到适当调整?
  • 您的相似度度量正确吗?
  • 您的算法是否对数据执行语义上有意义的操作?
  • 算法的假设与数据是否相符?