混淆矩阵、准确率、精确率、召回率、F1值

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

你可能感兴趣的:(python与人工睿智,机器学习入门与放弃)