为什么使用混淆矩阵计算的精度与使用sklearn函数的precision_score()计算的精度不同?

时间:2020-09-04 13:12:32

标签: python machine-learning scikit-learn confusion-matrix

我正在使用类别数= 4进行多类分类。我采用以下两种方法进行精度计算:(1)使用sklearn的precision_score()函数,以及(2)使用多类混淆矩阵。遵循我的代码片段,该代码可以计算混淆矩阵以及用于多类分类的TP,TN,FP,FN。

    cnf_matrix  = confusion_matrix(GroundTruth_Labels,MLPredLabels)
    print(cnf_matrix)
    FP          = cnf_matrix.sum(axis=0) - np.diag(cnf_matrix)  
    FN          = cnf_matrix.sum(axis=1) - np.diag(cnf_matrix)
    TP          = np.diag(cnf_matrix)
    TN          = cnf_matrix.sum() - (FP + FN + TP)

然后使用 ACC = (TP+TN)/(TP+FP+FN+TN)计算精度。由于我有四节课,因此该行给出了4个精度。然后,我将所有四个精度的平均值用于计算系统的最终精度。

与使用sklearn的accuracy_score()函数计算的精度相比,我得到了不同的结果。

有人知道为什么会这样吗?

0 个答案:

没有答案