2

我正在为我的论文使用 Carrot2 工具,并在该工具上运行不同的算法。我的问题是,如何科学地比较不同算法的结果?我的意思是,我需要证明算法 1 的聚类结果优于算法 2 的结果。熵和纯度值对我有用吗,如果是,我该如何应用它们?

谢谢。

4

3 回答 3

2

在我看来,比较两种算法的最佳方式是展示它们在一些真实数据上的性能,并解释为什么它们在某些特殊情况下运行良好或运行不佳(例如,它适用于密集数据或稀疏数据,或与可变密度...)。在某些情况下,您可能能够做出理论证明,证明某些算法与另一种算法相比具有一些额外的理想属性。但这可能很难做到。

此外,为了确定结果是否良好,您可能需要领域专家来告诉您集群是否对您的应用程序领域有意义。

我的意思是熵和纯度之类的度量是有趣的度量。但最终,只有当数据挖掘技术为该领域产生有意义的结果时,它才适用于特定领域。

如果您正在开发一种通用的聚类算法,那么您可能会使用这些度量来证明您的算法在某些条件下比另一种算法具有更好的属性,并使用这些度量来争论这一点。但是你仍然需要用一些真实的数据来说明为什么它在某些情况下效果更好。

于 2012-05-08T00:41:33.883 回答
1

不幸的是,比较聚类结果并非易事。特别是在涉及重叠、分层和子空间结果时。常用措施仅适用于严格的分区聚类。即使那样,它们也有不同的偏见,并且存在十几种质量措施。因此,您的结果很可能在一项指标上更好,而在另一项指标上更差。

我不知道 Carrot 的详细信息,因为我是ELKI用户。为了比较聚类,它具有各种配对计数度量(Precision、Recall、F1、Jaccard、Rand、Adjusted Rand、Fowlkes-Mallows)、基于熵的度量(“归一化互信息”)、Bcubed 度量(同样是精确度、召回率和 F1 )、集合匹配度量(F1、纯度和逆纯度)、基于编辑距离的度量和基于基尼的度量。总共有 20 种质量措施。我还没有找到一个很好的论据,为什么其中一个明显优越,它们都有其优点和缺点。BCubed 自称优越,但是,谁不呢?

https://en.wikipedia.org/wiki/Cluster_analysis#External_evaluation 提供了其中一些措施的详细信息,但也没有说明何时使用哪些措施。

另外,实验不能证明任何算法都比另一种更好。您可能只是为另一个选择了错误的参数!或者您可能使用了不合适的“算法 2”。有数百种聚类算法(ELKI 是我所知道的最大的聚类算法集合,这就是我目前正在使用它的原因!)理想情况下,您应该比它们中的每一个都好。我目前认为发明另一种聚类算法没有多大意义。你可能只是在重新发明轮子,而有人可能已经发明了这种聚类算法,或者甚至更好的东西。

于 2012-05-07T18:01:43.343 回答
1

正如其他人提到的那样,没有“最佳”质量指标仅仅是因为当您谈论无监督聚类时没有“最佳”质量标准。有些人(和应用程序)更喜欢小型、紧凑的集群,而另一些人则倾向于喜欢大型、高级别的集群。一些用于分层,另一些用于扁平(分区)结果。有些人会喜欢清晰的分配,有些人会喜欢模糊的隶属函数……这可以永远持续下去。

与上述原因类似,没有用于执行此类比较的“完美”基本事实集。这一切都取决于输入数据是什么,目标是什么等。

请参阅http://project.carrot2.org/publications.html上的Carrot2 出版物列表,其中一些出版物包括您可以重复使用的质量指标和数据集(请注意我上面的评论)。这可能最适用于聚类搜索结果:

Claudio Carpineto、Stanislaw Osiński、Giovanni Romano、Dawid Weiss:Web 集群引擎调查。ACM 计算调查 (CSUR),第 41 卷,第 3 期(2009 年 7 月),第 17 条,ISSN:0360-0300

当然,如果您想出一个有趣的新算法,我们欢迎您对 Carrot2 的贡献!

于 2012-05-08T14:01:01.277 回答