将 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
我有一组评论,我用 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