聚类算法的性能分析

时间:2012-03-13 19:27:48

标签: machine-learning data-mining cluster-analysis knime

我已获得2个数据集,并希望使用KNIME对集合执行聚类分析。

完成聚类后,我希望对两种不同的聚类算法进行性能比较。

关于聚类算法的性能分析,这是时间的衡量标准(算法时间复杂度和执行数据聚类所花费的时间等)还是集群输出的有效性? (或两者兼有)

是否还有其他角度可以确定聚类算法的性能(或缺少)?

非常感谢,

  • Ť

4 个答案:

答案 0 :(得分:2)

这在很大程度上取决于你有哪些数据。

测量性能的常用方法是针对现有(“外部”)标签(虽然这对分类比对聚类更有意义)。您可以使用大约24种措施。

使用“内部”质量测量时,请确保它与算法无关。例如,k-means优化了这样的度量,并且在评估该度量时总是最佳。

答案 1 :(得分:0)

有两类聚类评估方法,选择取决于 关于是否有基本事实。第一类是需要存在基本事实的外在方法,另一类是内在方法。一般而言,外在方法尝试在给定基本事实的情况下为聚类分配分数,而内在方法通过检查聚类分离的程度以及它们的紧密程度来评估聚类。

对于外在方法(记住你需要有一个地面),一个选项是使用BCubed精度和召回指标。 BCubed准确度和召回度量与传统的精确度和召回率不同,因为群集是一种无监督学习技术,因此我们事先不知道群集的标签。因此,BCubed指标根据实际情况评估给定数据集上的聚类中的evry对象的精度和召回率。示例的精度表示同一群集中有多少其他示例属于与示例相同的类别。召回一个示例反映了同一类别的多少个示例被分配给同一个集群。最后,我们可以使用F2指标将这两个指标合并为一个。

来源:

  1. Jiawei Han,Micheline,Kamber和Jian Pei的数据挖掘概念和技术
  2. http://www.cs.utsa.edu/~qitian/seminar/Spring11/03_11_11/IR2009.pdf
  3. 我自己评估群集性能的经验

答案 2 :(得分:0)

对于存在基本事实的外在方法,一种简单的方法是使用聚类之间的距离度量;基本事实只是被认为是一个集群。使用的两个好方法是Meila的信息变化,并且在我的拙见中,我自己也讨论了分裂加入距离。我不推荐Mirkin指数或Rand指数 - 我已经写了更多关于它的here on stackexchange

这些指标可以分为两个组成部分,每个部分代表一个聚类与最大公共子聚类的距离。值得考虑两个部分;如果地面实况部分(对于共同的子集群)非常小,则意味着测试的聚类接近超集群;如果另一部分很小,则意味着测试的聚类接近于共同的子聚类,因此接近于基础事实的子聚类。在这两种情况下,可以说聚类与基本事实兼容。有关更多信息,请参阅上面的链接。

答案 3 :(得分:0)

通过外部质量度量(准确性)和内在度量(形成的聚类的一些内部统计数据),有几种用于评估聚类算法的基准:

适当的基准的选择取决于种类聚类算法(硬或软聚类),种(成对关系,归因数据集或混合的)和大小聚类数据的,规定的评价指标和监督的允许量。 Clubmark paper详细描述了评估标准。

Clubmark 被用于许多聚类算法在许多大型数据集(百万千万聚类的元素)(由成对关系指定处理输入数据)的全自动并行评估开发和评价大多accuracy metrics跟踪资源消耗(处理和执行时间,驻留内存峰值消耗等)。

但是对于几个数据集上的几种算法,甚至手动评估也是合适的。