news 2026/2/18 17:59:49

机器学习 - AUC-ROC 曲线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 - AUC-ROC 曲线

摘要:AUC-ROC曲线是评估二分类模型性能的重要指标,通过绘制不同阈值下的真正例率(TPR)和假正例率(FPR)来反映模型区分能力。曲线下面积(AUC)值越大(1为完美分类器,0.5为随机分类),模型性能越好。该指标特别适用于数据不平衡场景,相比准确率能更全面评估模型。Python中可使用scikit-learn的roc_auc_score和roc_curve函数计算AUC值并绘制曲线,示例展示了在乳腺癌数据集上逻辑回归模型实现过程,最终得到0.9967的高AUC分数。

目录

机器学习 - AUC-ROC 曲线

什么是 AUC-ROC 曲线?

为什么 AUC-ROC 曲线很重要?

在 Python 中实现 AUC-ROC 曲线

示例代码

输出结果


机器学习 - AUC-ROC 曲线

AUC-ROC 曲线是机器学习中常用的性能指标,用于评估二分类模型的性能。它是在不同阈值下,以真正例率(TPR)为纵轴、假正例率(FPR)为横轴绘制的曲线。

什么是 AUC-ROC 曲线?

AUC-ROC 曲线是二分类模型在不同阈值下性能的图形化表示。其纵轴为真正例率(TPR),横轴为假正例率(FPR)。真正例率是模型正确识别出的实际正例占所有实际正例的比例,而假正例率是模型将实际负例错误分类为正例的比例。

AUC-ROC 曲线是评估二分类模型整体性能的有效指标,因为它考虑了不同阈值下真正例率(TPR)和假正例率(FPR)之间的权衡关系。曲线下面积(AUC)代表模型在所有可能阈值下的整体性能:完美的分类器 AUC 值为 1.0,而随机分类器的 AUC 值为 0.5。

为什么 AUC-ROC 曲线很重要?

AUC-ROC 曲线是机器学习中重要的性能指标,因为它能全面衡量模型区分正例和负例的能力。

该指标在数据不平衡(即某一类别的样本数量远多于另一类别)的场景下尤为实用。在这种情况下,仅用准确率评估模型性能并不合适,因为准确率会受多数类样本的占比影响而产生偏差。

而 AUC-ROC 曲线通过同时考虑真正例率(TPR)和假正例率(FPR),能更均衡地反映模型的性能。

在 Python 中实现 AUC-ROC 曲线

了解了 AUC-ROC 曲线的定义和重要性后,我们来看看如何在 Python 中实现它。我们将使用 Scikit-learn 库构建二分类模型并绘制 AUC-ROC 曲线。

首先,需要导入必要的库并加载数据集。本示例中,我们将使用 Scikit-learn 库中的乳腺癌数据集。

示例代码

import numpy as np import pandas as pd from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_auc_score, roc_curve import matplotlib.pyplot as plt # 加载数据集 data = load_breast_cancer() X = data.data y = data.target # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 拟合逻辑回归模型 lr = LogisticRegression() lr.fit(X_train, y_train) # 对测试集进行预测(输出正例的概率) y_pred = lr.predict_proba(X_test)[:, 1] # 计算AUC-ROC分数 auc_roc = roc_auc_score(y_test, y_pred) print("AUC-ROC分数:", auc_roc) # 绘制ROC曲线 fpr, tpr, thresholds = roc_curve(y_test, y_pred) plt.plot(fpr, tpr) plt.title('ROC曲线') plt.xlabel('假正例率') plt.ylabel('真正例率') plt.show()

输出结果

运行上述代码后,会绘制出逻辑回归模型的 ROC 曲线,图形如下:(注:原文中图形坐标标注如下)纵轴(真正例率)范围:0.0 - 1.0横轴(假正例率)范围:0.0 - 1.0

同时,终端会输出 AUC-ROC 分数:AUC-ROC 分数: 0.9967245332459875

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

收藏!技术寒冬破局指南:大模型应用开发成程序员小白新出路

不得不承认,近段时间技术圈的整体环境确实承压明显。随着互联网行业彻底告别增量扩张,全面进入存量竞争的深水区,“降本增效”成为所有企业的核心经营逻辑,这一趋势最直接的体现就是——传统软件开发岗位的HC持续收紧,…

作者头像 李华
网站建设 2026/2/18 16:20:29

导师严选9个AI论文网站,研究生高效写作必备!

导师严选9个AI论文网站,研究生高效写作必备! AI 工具让论文写作更高效 在研究生阶段,论文写作是一项不可避免的重要任务。面对繁重的学术压力和严格的格式要求,许多学生都希望找到一种既能提高效率又能保证质量的工具。近年来&…

作者头像 李华
网站建设 2026/2/16 22:09:12

java求圆的面积代码,零基础入门到精通,收藏这篇就够了

在Java中,求圆的面积可以使用Math类的PI常量和pow方法。以下是一个简单的示例: public class CircleArea {public static void main(String[] args) {double radius 5.0;double area Math.PI * Math.pow(radius, 2);System.out.println("圆的面积…

作者头像 李华
网站建设 2026/2/18 17:07:32

收藏!228万年薪大模型岗刷屏:程序员/小白入局AI的高薪密码

不知道你是否有过这样的经历——刷社交平台时,总能被“别人的薪资”精准戳中痛点。尤其是当下爆火的AI赛道,百万年薪招聘启事、应届生薪资爆料刷屏不断,看着别人的职业起点,我们一边满心羡慕,一边又暗自觉得这份高薪遥…

作者头像 李华
网站建设 2026/2/14 19:01:41

电缆输送机使用年限

在评估电缆输送机这类专业工程装备时,“使用年限”不应被简单地理解为从出厂到报废的时间跨度。其核心实质是:在额定工况与规范维护下,设备保持核心性能稳定、安全可靠运行的有效生命周期。这直接关系到项目的长期装备成本与投资回报率。 影响…

作者头像 李华
网站建设 2026/2/16 19:22:25

小红书运营不熬夜的秘密|多号一页管,咨询秒响应

做小红书运营的宝子,谁没被多号切换、深夜值守逼到内耗?多号反复登录切换,私信评论漏回;深夜不敢关手机,高频咨询重复回复,精力全白费😭这款小红书聚合管理系统,两大核心功能&#x…

作者头像 李华