聚类的优度或有效性的评估措施(没有真值标签)

机器算法验证 聚类 无监督学习
2022-02-12 12:59:03

我正在对一组数据进行聚类,但我没有可以评估聚类结果的真实文档(我有未标记的数据),因此我不能使用外部评估措施。在这种情况下,是否有任何有效的评估措施 - 内部集群有效性措施,这将允许我每次将一些新数据聚类到当前聚类时增量评估聚类结果?

4个回答

王凯军、王百杰、彭柳青。“CVAP:聚类分析验证。” 数据科学杂志 0 (2009): 0904220071.:

为了衡量聚类结果的质量,有两种有效性指标:外部指标和内部指标。

外部索引是衡量两个分区之间一致性的指标,其中第一个分区是先验已知的聚类结构,第二个是聚类过程的结果(Dudoit 等,2002)。

内部指标用于衡量没有外部信息的聚类结构的好坏(Tseng 等,2005)。

对于外部索引,我们基于数据集(或集群标签)的已知集群结构评估集群算法的结果。

对于内部指标,我们使用数据集中固有的数量和特征来评估结果。最佳聚类数通常根据内部有效性指标确定。

(Dudoit 等人,2002 年):Dudoit, S. & Fridlyand, J. (2002) 一种基于预测的重采样方法,用于估计数据集中的集群数量。基因组生物学,3(7):0036.1-21。

(Tseng et al., 2005):Thalamuthu, A, Mukhopadhyay, I, Zheng, X, & Tseng, GC (2006) 微阵列分析中基因聚类方法的评估和比较。生物信息学,22(19):2405-12。


在您的情况下,您需要一些内部索引,因为您没有标记数据。存在数十个内部索引,例如:

  • 剪影索引(在MATLAB中实现)
  • 戴维斯-博尔丁
  • 卡林斯基-哈拉巴斯
  • 邓恩指数(在MATLAB中实现)
  • R平方指数
  • 休伯特-莱文 (C-index)
  • Krzanowski-Lai 指数
  • 哈蒂根指数
  • 均方根标准差 (RMSSTD) 指数
  • 半偏 R 平方 (SPR) 指数
  • 两个簇之间的距离 (CD) 索引
  • 加权内部指数
  • 同质指数
  • 分离指数

它们每个都有优点和缺点,但至少它们会给你一个更正式的比较基础。MATLAB 工具箱CVAP可能很方便,因为它包含许多内部有效性指标。

内部聚类标准概述(内部聚类验证指标)

这是我作为用户为 SPSS Statistics 编写的一些流行的内部聚类标准文档的摘录(请参阅我的网页)。

1. 思考

存在内部聚类标准或指数来评估对象划分为组(聚类或其他类)的内部有效性。

内部效度:总体思路一组对象的分区的内部有效性是从关于已完成分区的过程所使用的对象集的信息的角度来看的合理性。因此,内部有效性回答了这个问题,即对象信息的特征是在分区行为中“成功”还是“完全”解释的。(相反,分区的外部有效性是分区与关于在分区行为中未使用的对象集的信息的对应程度。)

内部有效性:操作上。当相似对象属于同一组而不同的对象(在不同组中)的程度越大时,分组的内部有效性就越大。换句话说,同组点在大多数情况下必须比不同组点更相似。或者,用密度来表述:内部的群体越密集,外部的密度越小(或者群体之间的距离越远),内部有效性就越高。不同的聚类标准,取决于它们的公式,在测试内部有效性时以不同的方式实现和强调该直观原则。

什么输入对象的分区(分组)和集合 - 数据(案例 X 变量)或对象之间的接近矩阵。该集合提供有关对象之间相似性的信息。

在此处输入图像描述

分区/分组:什么。 内部聚类标准不仅适用于聚类结果。任何来源的类(聚类分析、机器或手动分类)中的任何分区,如果这些组不因元素的成员资格相交(而在空间上,类可能相交),则可以通过这些索引检查内部有效性。本文档中提出的标准适用于非分层分类,也就是说,在被评估的分区中,组不会分成子组。

用法:比较不同的k。 大多数情况下,内部聚类标准用于比较聚类分区和不同数量的聚类 k,这些聚类是基于相同的输入集(相同的邻近矩阵或相同的数据)通过相同的聚类方法(或其他分组方法)获得的。这种比较的目的是选择最好的k,即具有最多有效簇数的分区。在这种情况下,内部聚类标准有时也称为聚类的停止规则。进一步查看详细信息。

用法:比较不同的方法。 您还可以基于相同的输入集比较由不同过程/模式(例如,不同的聚类分析方法)给出的分区(具有相同或不同数量 k 的聚类/类)。一般来说,对于一个标准来说,这都是一样的,无论是相同还是不同,被比较的分组是通过哪种方式获得的,您甚至可能不知道它是哪种方式。如果您在相同的 k 值下比较不同的方法,那么您选择的是“更好”的方法(在那个 k)。

用法:比较不同的对象集。 这个有可能。人们应该明白,对于一个聚类标准,集合中的对象“i”只是匿名行。因此,通过标准值比较部分或完全由不同对象组成的分区 P1 和 P2 将是正确的。这样做时,分区中的 k 可能是一或不同。但是,如果 P1 和 P2 由不同数量的对象组成,则只有当它对对象数量 N 不敏感时,才可以使用标准。

用法:使用不同的输入变体(不同的特征或不同的邻近矩阵)。 这是可能的,但这是一个微妙且有问题的点。现在说到标准值 val1 和 val2 的直接比较,其中 val1 是从输入数据集(变量或近似值)X1 和分区 P1 中获得的,而 val2 是从数据集 X2 和分区 P2 中获得的。具体来说:

  1. 可能会比较具有相同 k 并从相同方法获得的分区,但在对象之间使用的邻近度度量上有所不同。例如,一个分区可能是欧几里得距离矩阵(L2 范数)聚类的结果,另一个是曼哈顿距离矩阵(L1 范数)的聚类结果,第三个是具有 L3 范数的 Minkovski 距离矩阵的结果。这种比较在形式上没有任何不合法的地方——如果你准备好假设在相同数据上计算的不同类型的距离可以立即进行比较在你的情况下。但是,如果它们(这些度量)对您有系统差异——人们想要消除的差异(例如,值之间的不同提升或范围)——那么在计算聚类标准之前对矩阵进行相应的“标准化”。考虑到距离矩阵变换的问题,询问这个或那个聚类标准如何对矩阵元素的变换做出反应也是有用的。点双列相关或 C 指数等“通用”标准不会对向接近度添加常数做出反应,因此矩阵中距离幅度的整体水平对它们来说并不重要。

  2. 也可能会比较具有相同 k 并使用相同方法的分区,但在属性集和data 中的变量上有所不同。在这里,人们必须对这些不同变量集的值重复所有关于可比性的相同警告:如果它们是不可比的(例如按级别或范围) - 请注意使它们具有可比性。此外,通常,聚类标准与变量的数量无关:在一般情况下,直接比较从具有 2 个变量的数据获得的标准值与从具有 5 个变量的数据获得的值是不正确的。

  3. 让我们单独说一下变量的线性变换,例如 z 标准化。可以将一个聚类标准分区与(相同 k 的)分区进行比较,其中一个是从原始数据接收的,另一个是从这些相同的变量接收的,只是标准化的?这个问题的答案取决于一个具体的标准。如果标准对变量的不同线性变换不敏感,那么您可以。

比较不同的k:两种标准。 大多数情况下,内部聚类标准用于选择最佳聚类数k(所有具有不同 k 的集群分区都必须由您获得,并作为集群成员变量存在于数据集中;也就是说,一个标准评估已经存在的已完成分区。)看一下 X 轴有解决方案的图以升序或降序排列不同数量的簇,例如,k 从 2 到 20,并通过 Y 轴存放索引大小。

极值准则和肘部标准。对于极值标准,价值越高(或者相反,越低——取决于具体标准),分区越好;因此,当 k 运行连续值时,绝对最佳 k 对应于最大(或最小)标准值。对于肘部标准,它们的值随着 k 的增长而单调增加(或相反,减少 - 取决于具体标准),并且绝对最佳 k 对应于这种趋势的边缘轨迹,其中 k 的后续增加不再伴随着急剧增长(下降)的标准。极值准则优于肘部准则的优点是,对于任意两个 k,可以判断哪个更好;因此,极值标准不仅适用于一系列连续的比较k 的值。肘部标准不允许比较不相邻的 k 和通常的 k 对,因为不清楚这两个 k 的哪个“边”或者肘部位于它们之间。这是肘指数的一个基本缺点。

比较不同的 k:锐度优先于极值。 需要说的是,在实践中,峰值或弯头的弯曲锐度对于极值类型的标准也很重要。在不同连续 k 的此类标准的值分布图上,不仅应注意最大值(或最小值, 取决于具体的标准)轮廓中的值,但对于急剧弯曲的趋势,不一定与最大值一致。如果具有给定 k 的分区比具有 k-1 和 k+1 的分区好得多,即有一个峰值,那么它是该 k 的一个强有力的论据,即使在图上存在 k 的区域,其中标准通常是“更好”。对于极值标准,即使是一侧弯曲(肘部)也可能比绝对最大值更可取。这些建议的原因如下。

关键是,各种聚类指数在聚类数量方面具有其特有的小且具有背景、固有的特征偏差:一些“更喜欢”许多聚类,而另一些则“偏好”少数聚类。并且这些趋势的表现取决于数据的特性:几乎不可能发明具有不同 k 的数据集,这些数据集对所有可能的标准同时有效1. 生成指定 k 个集群的模拟实验表明,当集群相互足够紧密时,所有标准都会不时“错误”:它们的错误在于总体最大值与人工声称的生成集群的数量不匹配。如果要注意峰值和弯头,而不是最大值,那么在此类实验中,标准“错误”的频率会降低。(然而,人们应该意识到这种模拟实验在评估聚类标准偏差方面的局限性:因为聚类标准的任务不是发现预期的,在生成时,聚类结构,它只是评估原来的结构,虽然它可能根本不像是在随机生成时设想的那样。)通过这个想法,有助于选择更好的 k 的聚类标准应该对 k 具有零水平的基础偏好。不幸的是,这个理想几乎不可能实现。

[1例如:假设在 2 变量空间中有 2 个圆形簇(它们之间的距离为 1),或者 3 个这样的簇(它们的三角形,它们之间的距离是 1),或者 4 个这样的簇(它们的平方,它们之间的距离邻居是1)。这三种配置中的集群配置细节不同(在 2 集群中,数据云是长方形的;在 4 集群中,存在大于 1 的集群间距离),这使得将三种配置同等对待变得复杂通过一些“普遍的”内部有效性来实现内部有效性。非常普遍的内部有效性是不存在的。一些聚类标准将通过优先选择其中一个或另一个来响应配置中的上述不相同性(这是进入标准对 k 的偏差概念的内容),而其他聚类标准则不会。]

一些标准(例如 BIC 或 PBM)有意识地偏爱具有少量集群的解决方案,然后据说它们“惩罚过多的集群”。相反,C-Index 公开倾向于奖励具有更多集群的解决方案。

标准与眼睛。 如果数据是区间的,则在变量或其主成分空间的散点图上,簇并不少见。但是眼睛有它自己的偏见(apophenia),它只是聚类标准之一,并不是最好的聚类标准。通常这个或那个基于统计公式的聚类标准会“发现”肉眼不明显的聚类,之后的解释将通过内容确认它们的有效性。

选择标准:数据性质。 某些标准 (1) 需要一组数据(案例 x 变量)作为输入,并且案例是划分为集群/类的对象。一些这样的标准需要规模、数量变量;而其他 - 分类变量或规模和分类的混合。对于二元变量,某些标准可能是最佳的。其他类型(2)的标准基于对邻近矩阵的分析物体之间。通常这样的标准并不关心是什么——案例/受访者或变量/属性——构成了集群中的项目,因为任何性质的项目都可能存在邻近矩阵。类型 (2) 的某些标准需要特定的邻近度度量,例如欧几里得距离。而对于其他标准,接近的类型是无关紧要的;后者被称为通用标准。(但“普遍性”问题比看起来更微妙,因为这些标准确实,例如,近似值的总和,并且提出了理论问题是否可以对任何类型的近似值求和。)一些标准(3)可以等价地从变量(尺度)以及矩阵(欧几里得距离)计算。

物体的数量,或丘陵。 有一些标准对集群中频率的增加或减少(按比例相等)做出反应。这似乎很自然,因为将对象添加到集群中会放大数据中分布形状的缓解,当集群没有太多重合时,因此标准值将有望提高。但是有些标准对 N 的这种变化没有反应:尽管对于这样的标准很重要,即集群内部的密度高于集群外部,但它们不会通过增加集群中的对象数量来奖励密度的增强。

空间形状。 如果一个标准需要比例数据或欧几里德距离,则集群可能是空间中的这种或那种配置。这里不同的聚类标准有自己的偏好,即它们可能会适度奖励在聚类解决方案中表现出特定空间形状或相对位置的聚类。这个相当复杂的问题可以分为三个子问题:标准是否敏感,以及如何,(1)对集群轮廓的形状(圆形或椭圆形或弯曲);(2) 椭圆形星团相对于彼此的旋转,即围绕它们的质心;(3) 整个数据云围绕其总中心的旋转(在尺度变量的空间中)。

(1)的备注:出现错误偏好圆形簇的印象。不是现有的聚类标准要求聚类在空间边缘不重叠,但大多数聚类分析方法输出的聚类在空间上完全不重叠。在这些条件下(不允许星团物理叠加),圆形星团在空间中比具有不受控制的旋转的椭圆星团更靠近彼此,因此后者在实际调查中遇到或通过集群化形成的机会更少数据——正如我们所知,集群通常彼此相邻。由于这种现象,聚类标准对聚类的轮廓很敏感,例如 Calinski-Harabasz,更经常遇到具有圆形而非细长簇的“好”解决方案。这并不意味着这些标准本身更喜欢圆形集群。

簇中的分布形状。 有一些标准优先考虑内部均匀、平坦分布的集群(例如,hyperball),也有一些标准优先考虑内部具有钟形分布的集群(如正态分布);而其他标准并不像集群中的密度分布形状那样重要。

空间维度。 还有一个不太容易的问题——不同的聚类标准对空间维数增加的反应,空间维数是由数据分割成簇“跨越”的。除其他外,该问题与许多聚类标准所基于的欧几里德距离“悬垂”的维度诅咒有关。

统计学意义。 内部聚类标准不伴随概率 p 值,因为它们不推断人口并且只忙于手头的数据集。当然,高标准值形式的良好聚类解决方案可能是具体样本的偶然特性、过度拟合的结果。通过等效数据集进行交叉验证(以稳定性检查和通用性检查的形式)总是有帮助的。

2. 例子

在聚类分析中应用两个聚类标准来决定聚类的数量。这是五个非常联系的集群;眼睛一下子认不出他们了。

在此处输入图像描述

对这个数据云的层次聚类进行了基于欧几里德距离的平均连锁分析,并保存了从15-cluster到2-cluster的所有聚类划分。然后使用了 2 个聚类标准,Calinski-Harabasz 和 C-Index,以尝试选择最佳解决方案。

在此处输入图像描述

如左图所示,Calinski-Harabasz 很容易(在给定的示例中)管理了该任务,表明 5-cluster 解决方案绝对是最好的。但是,C-Index 建议使用 15 或 9 个集群的解决方案(C-Index 越低越好)。尽管如此,这需要忽略,需要注意 C-Index 在 5 集群时的弯曲:5 集群解决方案仍然很好,但 4 集群更糟糕。因此,即使在正确的地块上,选择的最佳解决方案也是 5 集群。

当然,人们应该明白,如果您的数据中几乎完全不存在集群结构,那么所有标准都不会帮助选择“正确”的集群解决方案,因为没有一个标准。在这种情况下,不会出现峰值或弯曲,但会出现相对平滑的线趋势,上升、下降或水平 - 取决于数据和标准。

3.一些内部聚类标准

[我没有给出公式:请在网页上的完整文档中满足它们以及对每个标准的想法的评论,集合“内部聚类标准”]

A. 基于欧几里得空间方差分析思想的聚类标准。基于集群内和集群之间偏差的平方和的比率:B/W、B/T 或 W/T。

  • Calinski-Harabasz是 Fisher 的 F 统计量的多元类似物。它可以很好地识别任何凸簇。
  • Davies-Bouldin与前者相似,但在内部物体的数量上,没有趋向于大致相同大小的集群;Davies-Bouldin 更喜欢彼此距离相等的集群。
  • 三次聚类准则类似于 Calinski-Harabasz。它(可能)标准化用于比较在不同数据上获得的结果。更喜欢球形簇。
  • Log SS Ratio类似于 Calinski-Harabasz,但它使用对数而不是标准化 B/W。
  • Log Det Ratio – 倒数 Wilks' lambda 的对数;它是考虑数据云的体积特性的 MANOVA 标准。

B. 采用单变量方法的聚类标准:按每个变量进行分析。这些是固定属性:数据不被视为位于可能被任意旋转的空间中。

  • Ratkowsky-Lance专为尺度特征(基于方差分析思想)和分类特征(基于卡方统计思想)而设计。Ratkowsky-Lance 还可用于评估单个特征对聚类分区质量的贡献。
  • AICBIC聚类标准也允许规模和分类属性。这些指数与变分熵的概念有关。他们对过多的集群进行了惩罚,因此可以选择基于简约(少数集群)的解决方案。

C. 基于“cophenetic”相关思想的聚类标准(对象的相似性与其落入同一聚类之间的相关性)。

  • 点双列相关通常是 Pearson r。
  • Goodman-Kruskal Gamma是非参数的单调相关。
  • C-Index评估集群分区在当前设置中与(不可达)理想分区的接近程度。该标准等效于重新调整的 Pearson r。

D. 其他标准:

  • Dunn寻求具有最大程度划分、分离的集群的集群解决方案——如果可能,物理尺寸(直径)大致相同。宏计算标准的不同版本。
  • McClain-Rao是平均同簇距离与对象间平均簇间距离的比值。
  • PBM是考虑到质心的偏差总和(不是它们的平方)和质心之间的分离的折衷标准。
  • 剪影统计(宏计算几个版本)能够评估每个单独对象的聚类质量,而不仅仅是整个集群解决方案。该标准衡量将对象放入其集群的合理性。

标准的一些属性总结:

在此处输入图像描述

有一些内部聚类方法。特别是关于数据集中对象的距离。参见例如剪影系数 [on Wikipedia]

但是,您必须注意,有些算法(例如 k-means)会尝试精确优化这些参数,因此您会引入一种特定类型的偏差;本质上这很容易过度拟合

因此,在使用内部评估方法时,您需要充分了解算法的属性和实际度量。我什至会尝试做某种交叉验证,只使用部分数据进行聚类,另一部分数据集进行验证。对于轮廓系数,这可能不足以使除 k-means 之外的任何东西看起来都不错,但至少它应该有助于将不同的 k-means 结果相互比较。出于这个原因,这实际上是这种系数的主要用途:将同一算法的不同结果相互比较。

抱歉,您的问题只回答了一半。我不知道是否有任何此类方法的“在线版本”可用。

看看你的目标,看看你是否可以从中得出任何质量衡量标准。一般来说,对于真实数据来说,没有最好的聚类结果。它永远只与某个目标有关;因此它也可能过拟合。k-means 优化与中心的距离;监督学习者针对标签进行优化,因此在复制标签时容易过度拟合。

如果您的问题是评估聚类算法列表中的聚类结果(即为某个输入数据集选择最佳聚类算法),另一个想法是使用其他人用作评估函数的评估指标来最大化,以便创建他的聚类算法。

本文给出了一个很好的例子:Rock: a robust clustering algorithm for categorical attributes在第 3.3 节(第 5 页)中,作者提出了一个最大化的标准函数。

在这种情况下,该函数考虑某个点与另一个点共有的“邻居”的数量。该点的邻居是与非常相似x的点(即,用户定义的和之间的相似性度量返回非常高的分数)。所以这个想法是:如果两个点有很多“邻居”,那么在同一个集群中考虑它们是正确的。nxxn

这样,使用该评估函数对两种不同算法的聚类结果,您可以选择得分高的一个。