1 . sklearn中的混淆矩阵行表示真实值,列表示预测值。
from sklearn.metrics import classification_report, cohen_kappa_score, accuracy_score, confusion_matrix
print(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,(右)表示预测为真,(左)预测是错误的,所以真实值为假。
如下表(网上有的乱七八糟,此处可参考周志华的机器学习为证):
预测为真 | 预测为假 | |
---|---|---|
真实为真 | 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}
F12=P1+R1