我正在使用类别数= 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()
函数计算的精度相比,我得到了不同的结果。
有人知道为什么会这样吗?