当前位置: 首页 > news >正文

classification_report分类报告的含义

classification_report分类报告

  • 基础知识
    • 混淆矩阵(Confusion Matrix)
    • TP、TN、FP、FN
    • 精度(Precision)
    • 准确率(Accuracy)
    • 召回率(Recall)
    • F1分数(F1-score)
  • 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代码:

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
实际为132
实际为014

给出了每类别对应的精度(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

http://www.lryc.cn/news/225610.html

相关文章:

  • mysql with 的用法 (含 with recursive)
  • YOLOv8模型ONNX格式INT8量化轻松搞定
  • 揭秘南卡开放式耳机创新黑科技,核心技术剑指用户痛点
  • ChatRule:基于知识图推理的大语言模型逻辑规则挖掘11.10
  • 6.4翻转二叉树(LC226—送分题,前序遍历)
  • 【斗罗二】霍雨浩拿下满分碾压戴华斌,动用家族力量,海神阁会议
  • 通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测
  • 一键创建PDF文档,高效管理您的文件资料
  • React在 JSX 中进行条件渲染和循环,并使用条件语句和数组的方法(如 map)来动态生成组件或元素
  • 数据结构-二叉树的遍历及相关应用
  • 机器人入门(五)—— 仿真环境中操作TurtleBot
  • G2406C是一款高效的直流-直流降压开关稳压器,能够提供高达1A输出电流。
  • HTB——常见端口及协议总结
  • Spring Boot中处理简单的事务
  • source activate my_env 和conda activate my_env 有什么区别
  • 机器学习模型超参数优化最常用的5个工具包!
  • 出口美国操作要点汇总│走美国海运拼箱的注意事项│箱讯科技
  • Gateway网关
  • Python Opencv实践 - 车牌定位(纯练手,存在失败场景,可以继续优化)
  • U盘插在电脑上显示要格式化磁盘怎么办
  • Python使用腾讯云SDK实现对象存储(上传文件、创建桶)
  • Springboot整合Jedis实现单机版或哨兵版可切换配置
  • lenovo联想小新 Air-14 2019 AMD平台API版(81NJ)原装出厂Windows10系统
  • 特殊矩阵的压缩存储(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)
  • DDU框架学习之路
  • 进阶课6——基于Seq2Seq的开放域生成型聊天机器人的设计和开发流程
  • Java面试题04
  • 海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互
  • assimp中如何判断矩阵是否是单位矩阵
  • 大数据Doris(二十):数据导入(Broker Load)介绍