验证聚类算法的输出

And*_*w M 4 cluster-analysis machine-learning data-mining scipy scikit-learn

是否有客观的方法来验证聚类算法的输出?

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

Ano*_*sse 9

是的:

将集群提供给域专家,并让他分析算法发现的结构是否合理.如果它是新的,不是很多,但如果它是明智的.

......和 :

没有自动评估是公平的.从某种意义上说,它将无监督聚类的目标考虑在内:知识发现又称:了解有关数据的新内容.

自动评估群集有两种常用方法:

  • 内部凝聚力.即,存在一些特定的属性,例如与群集间方差相比的in-cluser方差,以最小化.问题在于作弊通常是微不足道的.即构建一个非常好的微不足道的解决方案.所以这个方法一定不能用来比较基于不同的假设方法.你甚至不能公平地比较不同类型的链接用于层次聚类.

  • 外部评估.您使用带标签的数据集,并根据他们重新发现现有知识的程度对算法进行评分.有时这很有效,因此它是一种可接受的评估技术.然而,任何有监督半监督的方法当然会在这方面得分更高.因此,A)偏向监督方法,而B)实际上完全反对找到你还不知道的东西的知识发现想法.

如果你真的想要使用聚类 - 即了解你的数据 - 你将在某些时候必须检查聚类,最好是通过一个完全独立的方法,如领域专家.如果他能告诉你,例如群集所识别的用户群是一个尚未密切调查的非平凡群体,那么你就是胜利者.

但是,不幸的是,大多数人都希望进行"一键式"(和一次评分)评估.

哦,"聚类" 并不是一个机器学习任务.实际上没有涉及学习.对于机器学习社区来说,这是一个无人问津的丑小鸭.