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 |
准确率:
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?
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- python自定义封装带颜色的logging模块
- 我和你之前距离