如何评估聚类的“外部”质量?

机器算法验证 聚类 数据挖掘
2022-04-03 03:01:58

假设您想要对一些对象进行聚类,比如文档、句子或图像。

在技​​术方面,您首先以某种方式表示这些对象,以便计算它们之间的距离,然后将这些表示提供给一些聚类算法。

然而,在外部,您只想将相似的(在某种意义上——这就是事情变得对我来说非常模糊的地方)对象组合在一起。例如,在句子的情况下,我们希望集群包含关于相似主题/概念的句子;我们觉得句子“哦,看看这张可爱的笑笑猫的照片”和“Facebook 今晚显示了新的闪亮功能”应该在不同的集群中。

衡量这种“外部”聚类质量的常用方法是什么?即我们想要衡量我们的聚类过程对初始对象(句子、图像)的分组情况;我们对内部度量(如平均簇半径、簇稀疏度)不感兴趣,因为这些度量处理对象的表示,而不是真实对象。意思是,选择的表示可能很糟糕,即使内部措施很好,从我们模糊的、主观的、“某种意义上”的角度来看,我们最终会得到完全垃圾的集群。

PS 在集群领域的知识有限,我怀疑我可能会问一些非常明显的事情,或者我的术语对集群专家来说可能听起来很奇怪。如果是这样,请建议我应该阅读有关该主题的内容。

PPS 以防万一,我在 Quora 上问了同样的问题:http ://www.quora.com/How-to-evaluate-external-quality-of-clustering

3个回答

我不完全理解您所说的内部和外部质量是什么意思。我假设 internal 是指在获得的分区上计算的度量,而 external 是您想要获得的结果。

通常,内部度量旨在比较集群内距离与集群之间的距离。直观地说,如果集群密集且分离良好,那么您就有了良好的集群。由于这是集群的目标,所以你真的不能做得更好,除非你让人们看看你的分区并说出它们是否好。

如果生成的聚类对您来说似乎不太好,则可能是您的点没有正确放置,或者您的距离不适合您的问题。例如,假设您预期的集群在您的表示中形成长的平行矩形。如果您使用欧式距离,您将无法找到预期的分区。

为了解决这个问题,如果在生成的分区中,您发现它们是同一簇中不应该属于一起的点,然后问自己为什么选择的距离认为它们很近。然后,只需构建(或阅读)一个避免此问题的新距离函数。

综上所述,如果您发现计算的分区没有意义,不一定是因为您的质量度量错误,而更可能是因为聚类执行了错误的任务。在进行聚类时,找到一个好的距离和空间表示可能是主要任务。

根据我从你的问题中了解到的...

听起来您是基于一组特征进行聚类,但随后希望集群能够理想地反映您的聚类不基于的其他特征。解决这个问题的方法是在估计任何模型之前先考虑一下,并确保你的“内部”特征与“外部”特征相匹配。换句话说,如果您想要基于主题聚类的句子,那么关键是找到反映这一点的距离度量(或其他)。编辑:这也基本上是穆格尔所说的。

也就是说,也许您一开始对如何执行此操作没有任何想法,并且想尝试一下。聚类的问题在于类标签是未知的……但是从您的示例来看,一个人似乎可以查看单个结果并确定他们是否对聚类感到满意。因此,您可以进行聚类,然后对输出进行可管理的随机样本,看看它对您自己的效果如何。以此为基础,您可以在开始时分配类标签并将其转变为分类问题。

底线:我不知道对此有“统计”或自动化方法 - 这似乎是一个可以通过更多用户输入和周到解决的问题。

解决实际问题需要结合技术和领域知识。你问的是技术,你在这方面得到了很好的答案。但是,如果没有一些明确的领域知识,你就无法真正取得成功。你的主要任务是引出、集中、提炼等领域知识。然后,您将能够正确应用一种技术。

所以你需要帮助他们(无论是谁挥舞着他们的手臂,对你的集群大喊“不好,不好!”)集中注意力。如果您要对照片进行聚类,请制作或征集 20 个好的聚类的具体示例(例如每张 5 张照片)和 20 个坏聚类的具体示例。然后,您可以参考此线程中其他答案的建议,并尝试将您的聚类距离与答案对齐。*

这是书籍和课程真正没有涵盖的统计数据部分。这是硬币的顾问方面。但我看不出不这样做你会成功的任何方式。(即使他们是你。)

_* 还有一些半监督技术使用一些标记数据和大部分未标记数据,但作为第一步,您可以使用可以引出的标签来探索数据,然后找出最有效的指标。