Machine learning 聚类算法的性能分析

Machine learning 聚类算法的性能分析,machine-learning,data-mining,cluster-analysis,knime,Machine Learning,Data Mining,Cluster Analysis,Knime,我得到了2个数据集,希望使用KNIME对这些数据集进行聚类分析 完成聚类后,我希望对两种不同的聚类算法进行性能比较 关于聚类算法的性能分析,这是对时间(算法时间复杂度和执行数据聚类所花费的时间等)的度量还是对聚类输出有效性的度量?(或两者兼有) 是否有任何其他角度可以用来确定集群算法的性能(或不足) 多谢各位 T 这在很大程度上取决于您有哪些可用数据 衡量性能的一种常用方法是针对现有的(“外部”)标签(尽管这对分类比聚类更有意义)。有大约24种方法可以用于此 当使用“内部”质量度量时,确保它独

我得到了2个数据集,希望使用KNIME对这些数据集进行聚类分析

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

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

是否有任何其他角度可以用来确定集群算法的性能(或不足)

多谢各位

  • T

这在很大程度上取决于您有哪些可用数据

衡量性能的一种常用方法是针对现有的(“外部”)标签(尽管这对分类比聚类更有意义)。有大约24种方法可以用于此


当使用“内部”质量度量时,确保它独立于算法。例如,k-means优化了这样一个度量,并且在针对该度量进行评估时总是表现得最好

有两类聚类评估方法,选择取决于 是否有确凿的事实。第一类是要求存在基本真理的外在方法,另一类是内在方法。一般来说,外部方法试图根据基本事实为聚类打分,而内部方法则通过检查聚类的分离程度和紧凑程度来评估聚类

对于外部方法(请记住,您需要有一个可用的基础),一个选项是使用BCubed精度和召回指标。BCubed precion和recall度量与传统的精度和召回度量不同,因为聚类是一种无监督的学习技术,因此我们事先不知道聚类的标签。因此,BCubed metrics根据基本事实评估给定数据集上聚类中每个对象的精确度和召回率。示例的精度表示同一集群中有多少其他示例与示例属于同一类别。一个例子的回忆反映了同一类别中有多少个例子被分配到同一个集群。最后,我们可以使用F2度量将这两个度量组合在一起

资料来源:

  • 数据挖掘概念和技术,作者:韩佳伟、米其林、坎伯和裴健
  • 我自己在评估集群性能方面的经验

  • 对于存在基本事实的外部方法,一种简单的方法是使用聚类之间的距离度量;基本事实被简单地认为是一个集群。有两个很好的方法可以使用,一个是Meila提供的信息变化,另一个是我自己也讨论过的分割连接距离。我不推荐米尔金指数或兰德指数——我已经写了更多关于它的文章

    这些度量可以分为两个组成部分,每个部分表示一个聚类到最大公共子聚类的距离。这两个部分都值得考虑;如果基本真值部分(到普通子集群)非常小,则意味着测试的集群接近于超集群;如果另一部分较小,则意味着测试的聚类接近于公共子聚类,因此接近于基本真相的子聚类。在这两种情况下,聚类都可以说是符合基本事实的。有关更多信息,请参见上面的链接。

    对于聚类算法评估,有几个基准,包括外部质量度量(准确性)和内部度量(形成的聚类的一些内部统计):

    • 展示于
    • ,请参阅中的说明
    • CoDAR(来源可能来自作者)
    适当基准的选择取决于聚类算法的种类(硬聚类或软聚类)、聚类数据的种类(成对关系、属性数据集或混合)、聚类数据的大小、所需的评估指标和可接受的监督量。详细描述了评估标准

    Clubmark用于在许多大型数据集(数以百万计和数十亿计的聚类元素)上对许多聚类算法(处理由成对关系指定的输入数据)进行全自动并行评估,并主要通过跟踪资源消耗进行评估(处理和执行时间、峰值驻留内存消耗等)


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

    感谢您的回答:-)我将使用的数据是葡萄酒数据集(意大利葡萄酒的化学分析-)和乳腺癌数据集-:。你能详细解释一下“外部”标签和“内部”质量衡量标准背后的含义吗?参见维基百科:它解释了“内部”和“外部”。但是要知道,你并不是在测试你是否真的发现了一些有用的新东西。尤其是在使用分类数据(如UCI数据)时。集群实际上是关于发现新的集群,而不是复制已知的类(那么就是分类)。理想情况下,您应该手动检查找到的集群,并检查它们是否对您有意义。