Python 在多标签分类问题中获得每个类别的准确度
我需要计算多标签分类问题中每个类别的准确度(而不是总体准确度)。使用Python 在多标签分类问题中获得每个类别的准确度,python,machine-learning,classification,data-science,Python,Machine Learning,Classification,Data Science,我需要计算多标签分类问题中每个类别的准确度(而不是总体准确度)。使用scikit learn库中的classification\u报告,很容易找到每个类别的精确度、召回率和F分数。共有13个类别,分布如下: precision recall f1-score support Category 1 0.58 0.48 0.53 244 Category 2 0.91
scikit learn
库中的classification\u报告
,很容易找到每个类别的精确度、召回率和F分数。共有13个类别,分布如下:
precision recall f1-score support
Category 1 0.58 0.48 0.53 244
Category 2 0.91 0.85 0.88 728
Category 3 0.90 0.92 0.91 1319
Category 4 0.70 0.55 0.62 533
Category 5 1.00 0.10 0.18 20
Category 6 0.94 0.84 0.89 2038
Category 7 0.83 0.78 0.80 1930
Category 8 0.85 0.44 0.58 113
Category 9 0.88 0.87 0.87 1329
Category 10 0.79 0.54 0.64 61
Category 11 0.81 0.77 0.79 562
Category 12 0.71 0.62 0.66 416
Category 13 0.76 0.60 0.67 500
micro avg 0.86 0.78 0.82 9793
macro avg 0.82 0.64 0.69 9793
weighted avg 0.85 0.78 0.81 9793
samples avg 0.86 0.82 0.83 9793
我知道准确度如下:accurity=(TP+TN)/(TP+TN+FP+FN)
但对于这个多标签分类问题,找到TP
和TN
对我来说是个问题
在stackoverflow上有一个类似的问题
但对于二元分类问题,仅此而已
注意:
我尝试了从sklearn.metrics中提取混淆矩阵的多标签混淆矩阵
和混淆矩阵
,但两者都给了我相同的错误:值错误:分类度量无法处理多标签指标和连续多输出目标的混合
有什么想法吗?您可以使用以下代码从原始数组手动计算每类精度:
class_accuracies = []
for class_ in np.unique(y_true):
class_acc = np.mean(y_pred[y_true == class_] == class_)
class_acuracies.append(class_acc)
您可以创建一个13 x 13的矩阵,并将单个指标计算为一个,请改用,并用结果更新您的问题。