news 2026/6/9 22:40:14

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

作者头像

张小明

前端开发工程师

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/6/4 17:03:29

雷诺与法国国家橄榄球队,在紧张激烈的体育影片中庆祝愿景

雷诺与法国国家橄榄球队合作六年,双方在一部紧张激烈的体育影片中共同庆祝彼此的愿景。因为在橄榄球运动中,正如雷诺的愿景一样,必须回顾过去才能展望未来。橄榄球是唯一一项必须通过向后传球来推进并取得优势的运动。这一独特之处正是这项运…

作者头像 李华
网站建设 2026/6/5 9:24:23

还得是腾讯,Claude Code迎来最强中国对手!企业Agent有救了~

大家好,我是最近天天折腾CLI Agent的袋鼠帝。 一周前,我给大家安利了一款Claude Code的最强开源对手:OpenCode,没想到文章发出去后反响这么热烈,不管是阅读量还是评论都非常多。 这也再次印证了,天下苦Ant…

作者头像 李华
网站建设 2026/6/5 9:25:18

深入解析微软Outlook远程代码执行高危漏洞(CVE-2023-36895)

Microsoft Outlook 远程代码执行漏洞 (CVE-2023-36895) 摘要 本文讨论了于2023年8月8日发布的关键安全漏洞CVE-2023-36895,该漏洞与微软Outlook相关。文章分析了该漏洞的影响、严重性及其潜在风险,并探讨了微软为解决此漏洞提供的修复步骤和官方补丁。 引…

作者头像 李华
网站建设 2026/6/5 9:39:51

爆火的AI Agent究竟是啥?一篇文章给你讲透!(内含实例)

*一、前言:AI Agent火爆登场!* 要说今年上半年科技圈的“网红”,AI Agent(人工智能代理)绝对算一个!笔者最近也紧跟潮流,对这玩意儿进行了深入研究,还用智能体开发平台搞了几个有意…

作者头像 李华
网站建设 2026/6/5 9:11:24

银行反洗钱工作,身份核验添技术支撑

反洗钱是银行合规运营的核心要求,而精准识别客户身份是反洗钱工作的基础。护照阅读器可与银行反洗钱系统、客户识别系统无缝对接,读取护照信息后自动检索风险数据库,快速识别高风险客户或可疑交易线索。通过OCR数据与电子芯片内容交叉验证&am…

作者头像 李华
网站建设 2026/6/7 6:35:01

资源泄露:为什么你的文件句柄总是“莫名其妙”耗尽?

🚀 引言:谁动了我的句柄? “java.io.IOException: Too many open files”。 看到这个报错时,你的服务器可能已经陷入了“半死不活”的状态:无法建立新的数据库连接、无法读取配置文件、甚至连 SSH 都可能连不上。最诡异…

作者头像 李华