我想使用来自sklearn的多个评估得分(NMI,ARI,F1),使用一些综合数据评估聚类方法。当NMI和ARI正常工作时,我确实遇到了F1得分方面的问题,其中标签被切换,例如,真实标签为[0, 0, 0, 1, 1, 1]
,预测标签为[1, 1, 1, 0, 0, 0]
。对于聚类,这是一个完美的结果,因为两个聚类均已正确识别,仅切换了标签:聚类1
的标签为0
,反之亦然。 F1分数似乎无法处理,因为我的代码产生的F1分数为0.0
。我认为发生这种情况是因为标签的名称/编号不同,但是我无法手动为每个群集切换标签名称,因为这是很多工作的方法,尤其是对于大型数据集,因此是否有更通用的解决方案? >
示例代码:
from sklearn.metrics import f1_score
if __name__ == '__main__':
labels = [0, 0, 0, 1, 1, 1]
pred = [1, 1, 1, 0, 0, 0]
print(f1_score(labels, pred, average='micro')
我想使用来自sklearn的多个评估得分(NMI,ARI,F1),使用一些综合数据评估聚类方法。当NMI和ARI正常工作时,我确实遇到了有关F1的问题...
F1分数的计算方式为: