WEKA 如何评估集群?

Posted

技术标签:

【中文标题】WEKA 如何评估集群?【英文标题】:How WEKA evaluates clusters? 【发布时间】:2019-05-01 20:27:39 【问题描述】:

您好在this 链接中找到了这个解释:

使用训练集(默认)。生成聚类后 Weka 将训练实例根据 集群表示并计算实例的百分比 落在每个集群中。

在提供的测试集或 Weka 可以评估的百分比拆分中 如果集群表示为,则在单独的测试数据上进行集群 概率的(例如对于 EM)。

类到集群评估。在这种模式下,Weka 首先忽略 类属性并生成聚类。然后在 测试阶段,它根据 每个集群中类属性的多数值。然后 它根据这个分配计算分类错误 并且还显示了相应的混淆矩阵。一个例子 k-means 的其中一部分如下所示。

但是,我不清楚 WEKA 如何对集群中的新实例进行分类,以及它如何衡量该实例是否应该被分类到该集群中。还是只计算每个集群中测试实例的分布,而不判断分配是否正确?

【问题讨论】:

【参考方案1】:

聚类分配的概念取决于特定的聚类算法。让我们考虑最简单的情况:使用 k-means 进行硬聚类。在这种情况下,分配是根据离相关点最近的聚类质心来完成的。

对于新的测试实例,选项的含义如下:

使用训练集(默认)

由于集群通常以无监督的方式执行,默认选项意味着在集群算法完成后,Weka 将生成一个列表,其中包含已为每个集群分配了多少实例(也以百分比为单位)。在这种情况下没有提供新的测试实例,训练集中的相同实例用于计算聚类的最终结果

要进行聚类评估的类

此选项允许用户通过向训练实例提供类标签来真正测试聚类结果(这意味着带有标签的数据集应该可用)。在这种模式下,Weka 首先在不考虑类标签的情况下运行无监督聚类算法,然后根据每个集群中某个类的大多数实例计算有多少具有特定标签的实例被聚类到每个集群。它还像在标准监督分类任务中一样生成混淆矩阵。但是,没有使用单独的测试集,因为评估是基于同一训练集中提供的类标签执行的,因此也没有新的测试实例。

提供的测试集或百分比分割

通过选择此选项,用户可以提供单独的测试集(或者只是利用将可用数据集拆分为训练集和测试集)。在这种情况下,Weka 首先在训练集上运行聚类算法,并使用测试集将集群分配给新的测试实例。最后生成的结果与默认选项(使用训练集)相同,但仅基于从测试集中获取的实例计算。

希望这会有所帮助!

【讨论】:

以上是关于WEKA 如何评估集群?的主要内容,如果未能解决你的问题,请参考以下文章

如何在weka中提取集群成员?

Weka EM 集群在 Eclipse 中得到“错误:无法找到或加载主类测试”

EM Clustering with weka 对于某些集群的对数可能性为 0?令人困惑的输出

如何在没有评估环境的情况下对函数进行集群导出

如何使用带有 Java 代码的 WEKA 评估类来显示标准差值

如何评估聚类?