假设我有一个标记的数据集要进行聚类(标签是用来标识它所属的集群的每个数据)。现在,如果我在Matlab中使用任何聚类算法(kmeans,...),我怎么知道实例是否正确聚类。 知道可以说kmeans将实例中的一个数据集聚集在聚类2中,但标记数据表明它属于聚类1.然而,标记数据集中的聚类2可能与预测标签中的聚类1相同(但是预测和标记中的不同反转名称)。你有什么建议?
提前谢谢。
答案 0 :(得分:0)
如果我做对了,你就会试图比较"基本事实"使用您的算法找到的标签,并且存在可能正确分组但具有不同标签的问题。如果那是对的,你可以在两个标签向量上尝试grp2idx,因为它似乎分配了第一个集群,它找到了标签" 1"和下一个" 2"等等。
编辑:grp2idx没有这样做,它只是将标签更改为尽可能小的标签,但是grp2idx([2 1 2 2 3])变为[2 1 2 2 3],因此不会对它们进行不同的排序。例如,您可以在两个标签向量上获取grp2idx的输出,减去它们,并且对于标签向量的每个唯一值,差异应该相同。
答案 1 :(得分:0)
Wikipedia discusses several approaches
许多措施都是根据用于评估分类任务的变量而改编的。代替计算一个类被正确分配给单个数据点的次数(称为真阳性),这样的对计数度量评估是否预测真正位于同一簇中的每对数据点是相同的群集。
配对计数指标解决了必须将集群与类匹配的问题,通过查看协议是什么"相同"什么是"不同"。