将 RAND 索引与簇号和簇标签一起应用

Applying RAND index with cluster numbers and cluster labels

我有一组评论,我用 k-means 对它们进行了聚类,并得到了每条评论所属的聚类(例如:1、2、3 ...)。我也有这些属于哪些集群的真实标签,例如:位置、食物等),我需要将它们与 Rand 索引进行比较。

因为我有簇号和簇标签,我如何应用 Rand 索引进行比较?

我应该遵循任何中间步骤吗?

编辑: 我看过 post 但它没有回答我的问题。

在那个问题中,你有

labels_true = [1, 1, 0, 0, 0, 0]
labels_pred = [0, 0, 0, 1, 0, 1]

但是我有的是下面这样的东西,

labels_true = ['food', 'view', 'room', 'food', 'staff', 'staff']
labels_pred = [0, 0, 0, 1, 0, 1]

非常感谢任何帮助。

只需使用sklearn.metrics.rand_score函数:

from sklearn.metrics import rand_score

rand_score(labels_true, labels_pred)

真实标签和预测标签是否在不同域中具有值并不重要。请看例子:

>>> rand_score(['a', 'b', 'c'], [5, 6, 7])
1.0
>>> rand_score([0, 1, 2], [5, 6, 7])
1.0
>>> rand_score(['a', 'a', 'b'], [0, 1, 2])
0.6666666666666666
>>> rand_score(['a', 'a', 'b'], [7, 7, 2])
1.0