news 2026/6/2 4:37:00

机器学习 - 精确率与召回率

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 - 精确率与召回率

摘要:精确率和召回率是评估分类模型性能的关键指标,特别适用于不平衡数据集。精确率反映预测为正类的准确性(TP/(TP+FP)),召回率衡量对实际正类的识别能力(TP/(TP+FN))。以垃圾邮件检测为例,高精确率表示较少误判合法邮件,高召回率意味着能捕捉更多垃圾邮件。通过scikit-learn的precision_score()和recall_score()函数可计算这两个指标,示例代码展示了在乳腺癌数据集上训练逻辑回归模型并评估其性能(精确率94.6%,召回率98.6%)。这两个指标共同帮助优化模型在不同场景下的表现。

目录

机器学习 - 精确率与召回率

Python 实现

示例代码

代码说明

输出结果


机器学习 - 精确率与召回率

精确率(Precision)和召回率(Recall)是机器学习中评估分类模型性能的两个重要指标,在不平衡数据集(即某一类别的样本数量显著少于另一类别)的评估中尤为实用。

精确率衡量分类器做出的正类预测中,实际为正确预测的比例,其定义为真阳性(TP)与所有正类预测结果(TP + 假阳性 FP)的比值,即精确率 = 真阳性 /(真阳性 + 假阳性),反映了所有被预测为正类的样本中真正正类的占比。

召回率则衡量所有实际为正类的样本中,被分类器正确识别的比例,定义为真阳性(TP)与所有实际正类样本(TP + 假阴性 FN)的比值,即召回率 = 真阳性 /(真阳性 + 假阴性),体现了分类器对实际正类样本的捕捉能力。

以垃圾邮件检测问题为例可更好理解二者:分类器会将邮件标记为垃圾邮件(正类预测)或非垃圾邮件(负类预测),邮件实际标签也分为垃圾邮件和非垃圾邮件。实际为垃圾邮件且被正确标记为垃圾邮件的是真阳性;实际非垃圾邮件却被误标为垃圾邮件的是假阳性;实际为垃圾邮件但被误标为非垃圾邮件的是假阴性;实际非垃圾邮件且被正确标记的是真阴性。在此场景中,精确率反映分类器正确识别的垃圾邮件占所有被标记为垃圾邮件的比例,高精确率意味着分类器能准确识别多数垃圾邮件,且很少将合法邮件误判为垃圾邮件;召回率反映分类器正确识别的垃圾邮件占所有实际垃圾邮件的比例,高召回率意味着分类器能捕捉到多数垃圾邮件,即便可能将部分合法邮件误判为垃圾邮件。

Python 实现

在 scikit-learn 库中,可分别使用 precision_score () 函数和 recall_score () 函数计算精确率和召回率。这两个函数接收真实标签和预测标签作为输入,返回对应的精确率得分和召回率得分。

以下代码示例使用 scikit-learn 中的乳腺癌数据集训练逻辑回归分类器,并评估其精确率和召回率:

示例代码

from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import precision_score, recall_score # 加载乳腺癌数据集 data = load_breast_cancer() # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42) # 训练逻辑回归分类器 clf = LogisticRegression(random_state=42) clf.fit(X_train, y_train) # 在测试集上进行预测 y_pred = clf.predict(X_test) # 计算精确率和召回率 precision = precision_score(y_test, y_pred) recall = recall_score(y_test, y_pred) print("精确率:", precision) print("召回率:", recall)

代码说明

  1. 首先加载乳腺癌数据集,并按 8:2 的比例将数据划分为训练集和测试集(test_size=0.2),设置 random_state=42 保证结果可复现;
  2. 初始化逻辑回归分类器,使用训练集数据训练模型;
  3. 调用 predict () 方法在测试集上生成预测结果;
  4. 利用 precision_score () 和 recall_score () 函数分别计算模型的精确率和召回率,并打印输出。

输出结果

运行上述代码后,将得到以下输出:精确率: 0.9459459459459459召回率: 0.9859154929577465

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 10:11:53

FPGA在高性能计算中的应用:数据流加速与优化

随着科学计算、金融分析、大数据处理等领域对计算性能的需求不断增长,传统的处理器架构(如CPU、GPU)往往面临着性能瓶颈,特别是在处理计算密集型任务时,无法满足日益增长的实时性和处理能力要求。为了应对这一挑战&…

作者头像 李华
网站建设 2026/6/1 14:08:47

人生是一个在探索中不断校准方向的过程。

这句话道破了动态人生的精髓——人生不是执行一份预设的完美计划,而是驾驶一艘无完整海图的船,在航行中不断测绘、修正航向的探险。 这种“探索-校准”模式,是一种极具韧性与智慧的生存哲学。 核心理念:从“路径执行者”到“动态…

作者头像 李华
网站建设 2026/5/28 13:33:55

鸿蒙应用开发:项目实战与经验总结

🎯 鸿蒙应用开发:项目实战与经验总结 一、章节概述 ✅ 学习目标 详细介绍鸿蒙应用开发的项目实战流程(项目准备、需求分析、系统设计、代码实现、调试与测试、打包与发布)提供多个实战项目案例(智能待办应用、天气…

作者头像 李华
网站建设 2026/5/31 16:15:34

写了一套几乎无敌的参数校验组件!!!

参数校验这个东西,很多情况下都是比较简单的,用 NotNull、Size 等注解就可以解决绝大多数场景,但也有一些场景是这些基本注解解决不了的,只能用一些其他的方式处理,这样就导致参数校验变成了多层,其实是不利…

作者头像 李华
网站建设 2026/5/30 22:06:09

纺织设备远程监控运维管理平台方案

在纺织行业蓬勃发展的今天,纺织机械作为生产线的核心装备,其稳定运行直接关系到生产效率和产品质量。然而,随着纺织企业规模的扩大和设备的多样化,传统运维方式已难以满足现代纺织生产的需求。该平台通过高度兼容的技术架构&#…

作者头像 李华
网站建设 2026/5/29 0:25:56

DeepSeek-R1一周年回顾与MODEL1新模型技术前瞻

文章回顾了DeepSeek-R1发布一周年的意义,并分析了代码库中出现的MODEL1可能代表的新一代推理模型(R2或全新产品线)。文章探讨了R1如何通过开源策略改变AI推理生态,使模型从"黑箱"变为"白盒",从结果导向转向过程导向。MOD…

作者头像 李华