Skip to content

用于聚类评估的内在度量

Intrinsic Measures for Clustering Evaluation

在没有标签数据的情况下,我们无法客观地衡量聚类算法在把相似数据点归到一起、把不相似数据点分开这件事上做得有多好。

ds p317 1

此外,大多数聚类数据集都是多维的,因此无法直接对结果进行可视化。于是,在这种情况下我们必须依靠内在度量(intrinsic measure)来判断聚类质量。我个人喜欢这样使用它们:

  • 假设我正在使用 KMeans:
    • 用一系列 k 值来运行 KMeans。
    • 评估其表现。
    • 根据最有希望的簇质量指标来选择 k 的值。下面我们来理解其中几个指标。

ds p318 1

轮廓系数(Silhouette Coefficient)表示每个数据点在所属簇中拟合得有多好。其思想是:如果某个数据点到同一簇内所有数据点的平均距离很小,而到另一个簇的平均距离很大,这就直观地说明这些簇彼此分离良好,较为可靠。

ds p318 2

它的度量方式如下:

  • 对每个数据点:
    • 找到它到同一簇内所有其他数据点的平均距离 → A
    • 找到它到最近簇中所有数据点的平均距离 → B
    • 该数据点的得分 = (B-A)/max(B, A)
  • 计算所有单个得分的平均值,得到整体聚类得分。现在考虑这种情况:
  • 如果对所有数据点而言,B 都远大于 A,那就意味着:
    • 到最近簇中数据点的平均距离很大。
    • 到同一簇中数据点的平均距离很小。
    • 因此,整体得分会接近 1,表明这些簇分离良好。所以,更高的轮廓系数通常意味着所有数据点都落入了它们理想的簇中。在一组质心数(k)范围内测量该指标,就能揭示哪些聚类结果最有希望:

ds p319 1

ds p320 1

轮廓系数的问题在于其运行时间随数据点数量呈二次增长。Calinski-Harabasz 指数是另一个度量指标,其度量方式与轮廓系数十分相似。它计算的是:

  • A → 所有质心到整体数据集中心之间距离的平方和。
  • B → 所有数据点到其各自质心之间距离的平方和。
  • 该指标计算为 A/B(外加一个额外的缩放因子)。

同样地,如果 A 远大于 B:

  • 质心到数据集中心的距离很大。
  • 数据点到其各自质心的距离很小。
  • 因此,它会得到更高的得分,表明这些簇分离良好。

我更偏爱 Calinski-Harabasz 指数而非轮廓系数的原因是:

  • 它的计算相对轮廓系数要快得多。
  • 它在解释上与轮廓系数具有相同的直观意义。

轮廓系数和 Calinski-Harabasz 指数的问题在于,它们对于凸的(或某种程度上球形的)簇通常取值更高。然而,用它们来评估任意形状的聚类(比如用基于密度的聚类得到的那些),可能会产生误导性的结果。这一点从下图中可以明显看出:

ds p321 1

如上所示,尽管 KMeans 的聚类输出更差,但其轮廓系数仍然高于基于密度的聚类。在这种情况下,DBCV——基于密度的聚类验证(density-based clustering validation)——是一个更好的指标。顾名思义,它专门用于评估基于密度的聚类。简单来说,DBCV 计算两个值:

  • 簇内的密度
  • 簇与簇之间的密度重叠

簇内密度高、簇间密度重叠低,说明聚类结果良好。DBCV 的有效性从下图中同样可以看出来:

ds p322 1

使用 DBCV 时,KMeans 聚类输出的得分更差,而基于密度的聚类得分更高。329

本站内容仅供学习交流,版权归原作者所有。