2016-05-19 47 views
-1

可以说我有标记的数据集要群集(标签是识别每个数据到哪个簇所属太)。现在,如果我在Matlab中使用任何聚类算法(kmeans,...),我怎么能知道一个实例是否正确聚类。 知道可以说k均值​​数据集的群集的实例之一是在簇2,但被标记的数据说,它属于类1。然而,在被标记的数据集簇2可以是相同的预测的标签群集中的一个(但在预测和标记中具有不同的颠倒的名称)。你有什么建议?聚类评价

预先感谢您。

回答

0

如果我得到它的权利,你想的“地面实况”标签与一个你的算法比较发现,并有他们可能被正确分组的问题,但不同的标签。如果这是正确的,你可以在两个标签向量上尝试grp2idx,因为这似乎分配了它找到的第一个集群标签“1”和下一个“2”,依此类推。

编辑:grp2idx没有这样做,它只是将标签更改为尽可能小的标签,但grp2idx([2 1 2 2 3])变成[2 1 2 2 3],因此它不会按不同的顺序排列。例如,你可以在两个标签向量上取出grp2idx的输出,减去它们,并且对于标签向量的每个唯一值,差异应该是相同的。

+0

这是一个好办法,我可以使用XOR函数做类似的事情,但我不知道如果我得到了标签指的是真正的标签或没有的情况下,集群的名称是相反的。 –

+0

你能否用一个小例子更新你的问题?我不知道我明白你的意思了“逆转”什么 –

0

Wikipedia discusses several approaches

一些措施是从用于评估分类任务的变体中改编而来的。代替将类正确分配给单个数据点的次数(称为真正的正数),这样的对计数度量评估是否预测真正在同一集群中的每对数据点是否被预测为相同簇。

配对计数度量解决了通过查看协议是什么“相同”和什么是“不同”来将群集与类匹配的问题。

+0

是的,我已经知道了,但这些措施假设,我知道哪些情况下正确地聚集和不,他们没有这不是 –

+0

。他们假设你有标签和集群,就这些。他们有自己的“正确”的概念,基于成对。他们不*要求你知道标签A =簇1,但它们的设计方式无关紧要。 –