classification_report分类报告的含义

classification_report分类报告

基础知识

混淆矩阵(Confusion Matrix)

可以看出来类别之间相互误分的情况,查看是否有特定的类别相互混淆,能够帮我们调整后续模型,比如一些类别设置权重衰减。

预测为正类别 预测为负类别
实际为正类别 True Positive (TP) False Negative (FN)
实际为负类别 False Positive (FP) True Negative (TN)

TP、TN、FP、FN

TP(True Positives):预测为正类别,并且预测对了

TN(True Negatives):预测为负类别,而且预测对了

FP(False Positives):预测为正类别,但是预测错了

FN(False Negatives):预测为负类别,但是预测错了

精度(Precision)

精确率表示模型预测为正类别的样本中有多少是真正的正类别。
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP

准确率(Accuracy)

正确分类的样本占总样本数的比例。
A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN

召回率(Recall)

在所有实际为正类别的样本中,模型能够正确预测为正类别的比例。
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

高召回率意味着模型能够有效地捕捉到实际为正类别的样本。

与Precision的关系:负相关。

F1分数(F1-score)

F1 分数的取值范围是 [0, 1],越接近 1 表示模型的性能越好,同时考虑到了模型在查准率和查全率之间的平衡。
F 1 = 2 × ( P r e c i s i o n × R e c a l l ) P r e c i s i o n + R e c a l l F1=\frac{2×(Precision×Recall)}{Precision+Recall} F1=Precision+Recall2×(Precision×Recall)

classification_report分类报告

Python代码中使用"classification_report(Y_test,Y_prediction)"可以查看分类报告,其中Y_test为真实标签、Y_prediction为预测结果。

这里以一个数据量为10大小的二分类为例子,方便手算来理解一遍分类报告。

输入如下Python代码:

python 复制代码
from sklearn.metrics import classification_report
Y_test=[0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
Y_prediction=[0, 1, 0, 0, 0, 1, 1, 0, 0, 1]
print(classification_report(Y_test,Y_prediction))

得到该10个数据的二分类的分类报告:

先画个混淆矩阵:

预测为1 预测为0
实际为1 3 2
实际为0 1 4

给出了每类别对应的精度(Precision)、召回率(Recall)F1分数(F1-score)、真实中有多少个是该类别的(Support)、准确率(Accuracy)、宏平均(macro avg)和加权平均(weighted avg)。

Precision:预测为x的样本中,有多少被正确预测为x。

Precision_0=4/(2+4)=0.67

Precision_1=3/(3+1)=0.75

Recall:实际为x的类别中,有多少预测为x。

Recall_0=3/5=0.60

Recall_1=4/5=0.80

F1分数:2×Precision×Recall /(Precision+Recall)。

Accuracy:全部样本里被分类正确的比例。

Accuracy=7/10

macro avg:上面类别各分数的直接平均。

macro avg_precision=(0.67+0.75)/2=0.71

weighted avg:上面类别各分数的加权(权值为support)平均。

macro avg_precision=(0.675+0.755)/10=0.71

相关推荐
凡人的AI工具箱6 分钟前
每天40分玩转Django:Django类视图
数据库·人工智能·后端·python·django·sqlite
千天夜12 分钟前
深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解
网络·人工智能·深度学习·神经网络·yolo·机器学习
凡人的AI工具箱16 分钟前
每天40分玩转Django:实操图片分享社区
数据库·人工智能·后端·python·django
小军军军军军军20 分钟前
MLU运行Stable Diffusion WebUI Forge【flux】
人工智能·python·语言模型·stable diffusion
Kenneth風车35 分钟前
【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11
算法·机器学习·分类
诚威_lol_中大努力中43 分钟前
关于VQ-GAN利用滑动窗口生成 高清图像
人工智能·神经网络·生成对抗网络
中关村科金1 小时前
中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
人工智能·机器人·在线客服·智能客服机器人·中关村科金
逸_1 小时前
Product Hunt 今日热榜 | 2024-12-25
人工智能
Luke Ewin1 小时前
基于3D-Speaker进行区分说话人项目搭建过程报错记录 | 通话录音说话人区分以及语音识别 | 声纹识别以及语音识别 | pyannote-audio
人工智能·语音识别·声纹识别·通话录音区分说话人
DashVector1 小时前
如何通过HTTP API检索Doc
数据库·人工智能·http·阿里云·数据库开发·向量检索