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的矩阵,并将单个指标计算为一个,请改用,并用结果更新您的问题。