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