报错:valueError: Target is multiclass but average=‘binary’. Please choose another average setting, one of
原因:使用from sklearn.metrics import f1_score
多类别计算F1-score时报错,改函数的参数即可,如:f1_score(true_labels, predicted_labels, average='micro')
;
计算多类别的 F1-score,使用 Scikit-learn 库中的 f1_score 函数。以下是一个示例代码,演示如何计算多类别的 F1-score
from sklearn.metrics import f1_score
import numpy as np
# 示例真实标签和预测标签
true_labels = np.array([0, 1, 2, 0, 1, 2, 2, 0, 1, 1])
predicted_labels = np.array([0, 1, 1, 0, 1, 2, 1, 0, 2, 1])
# 计算多类别的F1-score
f1_macro = f1_score(true_labels, predicted_labels, average='macro')
f1_micro = f1_score(true_labels, predicted_labels, average='micro')
f1_weighted = f1_score(true_labels, predicted_labels, average='weighted')
print("F1-score (macro):", f1_macro)
print("F1-score (micro):", f1_micro)
print("F1-score (weighted):", f1_weighted)
在上面的示例中,true_labels 是真实的类别标签,predicted_labels 是模型的预测标签。
我们使用 f1_score 函数计算了三种不同的 F1-score,分别是宏平均 (macro)、微平均 (micro) 和加权平均 (weighted)。
宏平均 (macro):计算每个类别的 F1-score,然后对所有类别取平均值。
微平均 (micro):通过计算总体的真阳性、假阳性和假阴性,然后计算出总体的 precision、recall 和 F1-score。
加权平均 (weighted):对每个类别的 F1-score 进行加权平均,权重是每个类别的样本数。