4

有没有客观的方法来验证聚类算法的输出?从群集算法验证输出

我正在使用scikit-learn的关联传播聚类来对由具有许多属性的对象组成的数据集。提供给聚类算法的差异矩阵由这些属性的加权差异组成。我正在寻找一种方法来客观验证距离权重中的调整,反映在所得到的群集中。数据集很大,并且具有足够的属性,因此手动检查小例子不是验证生成的集群的合理方法。

回答

9

提供的集群领域专家,并让他分析,如果结构中发现的算法是明智。如果它是新的,但不是很明显,但是如果它是明智的。

...和

没有可自动评价,认为是公平。从这个意义上说,它将无监督聚类的目标考虑在内:知识发现又名:了解有关数据的新知识。

有自动评估聚类的两种常用方法:

  • 内部的凝聚力。即存在一些特殊的性质,例如密集度方差与群集间方差相比最小化。问题在于,作弊通常很微不足道。即构建一个分数非常好的微不足道的解决方案。因此,此方法必须不能用于比较基于不同假设的方法。你甚至不能公平地比较不同类型的连锁分类。

  • 外部评估。你使用一个标记的数据集,并通过他们重新发现现有的知识来评分算法。有时候这种方式运行得很好,因此它是评估技术的公认状态。然而,任何监督半监督方法当然会在这方面得分更好。因此,它是A)偏向监督的方法,和B)实际上完全反对知识发现想法找到你做的事还没有知道。

如果你真的要使用集群 - 即学习一些关于你的数据 - 你会在某个时刻必须检查集群,preferrably由一个完全独立的方法,如领域专家。如果他能告诉你,例如通过聚类标识的用户组是不平凡的尚未密切关注,那么你是一个赢家。

然而,大多数人都希望有一个“一键”(和一个分数)的评价,不幸的是。

呵呵,和“聚类”是不是真的是机器学习任务。实际上没有涉及到学习。对机器学习界来说,没人关心的就是丑小鸭。

+0

这是我担心的。我一直在积极应用一种方差最小化的方式。我应该删除机器学习标签吗?我认为这与切合人群的关系是足够的。 –

+0

标签不会受伤。方差最小化(如k-means所执行的)就是这种偏见的一个好例子:更多的聚类(较大的k)总会减少方差,但结果不一定会更好。 –

+1

优秀的报价:“哦,'集群'并不是真正的机器学习任务,实际上并没有涉及到学习,对于机器学习社区来说,这是丑陋的小鸭,没有人关心。最后有天鹅吗?聚类是一个高度(低)的低级问题,但同时又是一个非常自然的认知问题,也是一个重要的问题。其不明确的性质导致关于聚类的出版物过多,以及大量可贵的炮制优势证据。 – micans

3

还有另一种方法,以通过计算上subfolds稳定性度量,有点像受监管模型交叉验证评估聚类质量:

  • 拆分在3数据集褶皱A,B和C在A + B和A + C上用你算法计算两个聚类。计算交叉点A上2个标签的调整后的兰德指数或调整后的相互信息,并将此值作为算法稳定性评分的估计值。

  • 冲洗 - 重复洗牌数据并将其拆分为3个其他折叠A',B'和C'并重新计算稳定性分数。

  • 平均5或10次运行的稳定性得分可以粗略估计稳定性得分的标准误差。

正如你可以猜测这是非常计算机密集型的评估方法。

目前仍然是一个开放的研究领域,要知道这种基于稳定性的聚类算法评估是否在实践中真正有用并确定何时可能无法为模型选择产生有效的标准。请参阅Ulrike von Luxburg的Clustering Stability: An Overview及其中的参考资料,以获取有关这些问题的最新状态的概述。

注意:如果您想使用此策略选择k-means中k的最佳值,则使用Adjusted for Chance指标(如ARI或AMI)很重要。诸如NMI和V-measure之类的非调整指标倾向于倾向于任意更高k的模型。