python与人工睿智|混淆矩阵、准确率、精确率、召回率、F1值

1 . sklearn中的混淆矩阵行表示真实值,列表示预测值。

from sklearn.metrics import classification_report, cohen_kappa_score, accuracy_score, confusion_matrixprint(confusion_matrix(true_label, predict_label)) print(classification_report(true_label, predict_label)) print("kappa: ", cohen_kappa_score(true_label, predict_label)) print("accuracy: ", accuracy_score(true_label, predict_label))

2 . 关于TP/TN/FP/FN如何看:
先看右边P/N,表示预测值为真(P,Positive)或假(N,Negative);
再看左边T/F,表示预测是否正确。
比如FP,(右)表示预测为真,(左)预测是错误的,所以真实值为假。
【python与人工睿智|混淆矩阵、准确率、精确率、召回率、F1值】如下表(网上有的乱七八糟,此处可参考周志华的机器学习为证):
预测为真 预测为假
真实为真 TP FN
真实为假 FP TN
3 . 准确率、精确率、召回率、F1值
准确率:
a c c = T P + T N 所 有 acc = \frac{ TP + TN }{ 所有 } acc=所有TP+TN?
精确率(Precision,查准率):
P = T P T P + F P P= \frac{ TP }{ TP + FP } P=TP+FPTP?
召回率(Recall,查全率):
R = T P T P + F N R = \frac{ TP }{ TP + FN } R=TP+FNTP?
F1值:
2 F 1 = 1 P + 1 R \frac{2}{F_1} = \frac{1}{P} + \frac{1}{R} F1?2?=P1?+R1?

    推荐阅读