- 机器学习基础
- ML - 首页
- ML - 简介
- ML - 入门
- ML - 基本概念
- ML - 生态系统
- ML - Python库
- ML - 应用
- ML - 生命周期
- ML - 所需技能
- ML - 实现
- ML - 挑战与常见问题
- ML - 限制
- ML - 现实案例
- ML - 数据结构
- ML - 数学基础
- ML - 人工智能
- ML - 神经网络
- ML - 深度学习
- ML - 获取数据集
- ML - 分类数据
- ML - 数据加载
- ML - 数据理解
- ML - 数据准备
- ML - 模型
- ML - 监督学习
- ML - 无监督学习
- ML - 半监督学习
- ML - 强化学习
- ML - 监督学习 vs. 无监督学习
- 机器学习数据可视化
- ML - 数据可视化
- ML - 直方图
- ML - 密度图
- ML - 箱线图
- ML - 相关矩阵图
- ML - 散点矩阵图
- 机器学习统计学
- ML - 统计学
- ML - 均值、中位数、众数
- ML - 标准差
- ML - 百分位数
- ML - 数据分布
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假设
- ML中的回归分析
- ML - 回归分析
- ML - 线性回归
- ML - 简单线性回归
- ML - 多元线性回归
- ML - 多项式回归
- ML中的分类算法
- ML - 分类算法
- ML - 逻辑回归
- ML - K近邻算法 (KNN)
- ML - 朴素贝叶斯算法
- ML - 决策树算法
- ML - 支持向量机
- ML - 随机森林
- ML - 混淆矩阵
- ML - 随机梯度下降
- ML中的聚类算法
- ML - 聚类算法
- ML - 基于质心的聚类
- ML - K均值聚类
- ML - K中心点聚类
- ML - 均值漂移聚类
- ML - 层次聚类
- ML - 基于密度的聚类
- ML - DBSCAN聚类
- ML - OPTICS聚类
- ML - HDBSCAN聚类
- ML - BIRCH聚类
- ML - 亲和传播
- ML - 基于分布的聚类
- ML - 凝聚层次聚类
- ML中的降维
- ML - 降维
- ML - 特征选择
- ML - 特征提取
- ML - 向后消除法
- ML - 前向特征构造
- ML - 高相关性过滤器
- ML - 低方差过滤器
- ML - 缺失值比例
- ML - 主成分分析
- 强化学习
- ML - 强化学习算法
- ML - 利用与探索
- ML - Q学习
- ML - REINFORCE算法
- ML - SARSA强化学习
- ML - 演员-评论家方法
- 深度强化学习
- ML - 深度强化学习
- 量子机器学习
- ML - 量子机器学习
- ML - 使用Python的量子机器学习
- 机器学习杂项
- ML - 性能指标
- ML - 自动工作流
- ML - 提升模型性能
- ML - 梯度提升
- ML - 自举汇聚 (Bagging)
- ML - 交叉验证
- ML - AUC-ROC曲线
- ML - 网格搜索
- ML - 数据缩放
- ML - 训练和测试
- ML - 关联规则
- ML - Apriori算法
- ML - 高斯判别分析
- ML - 成本函数
- ML - 贝叶斯定理
- ML - 精度和召回率
- ML - 对抗性
- ML - 堆叠
- ML - 轮次
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的商业化
- ML - 数据类型
- 机器学习 - 资源
- ML - 快速指南
- ML - 速查表
- ML - 面试问题
- ML - 有用资源
- ML - 讨论
机器学习 - AUC-ROC曲线
AUC-ROC曲线是机器学习中常用的性能指标,用于评估二元分类模型的性能。它是真阳性率 (TPR) 与假阳性率 (FPR) 在不同阈值下的曲线图。
什么是AUC-ROC曲线?
AUC-ROC曲线是二元分类模型在不同阈值下性能的图形表示。它在y轴上绘制真阳性率 (TPR),在x轴上绘制假阳性率 (FPR)。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 # load the dataset data = load_breast_cancer() X = data.data y = data.target # split the data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
接下来,我们将把逻辑回归模型拟合到训练集,并在测试集上进行预测。
# fit a logistic regression model lr = LogisticRegression() lr.fit(X_train, y_train) # make predictions on the test set y_pred = lr.predict_proba(X_test)[:, 1]
进行预测后,我们可以使用scikit-learn中的`roc_auc_score()`函数计算AUC-ROC分数。
# calculate the AUC-ROC score auc_roc = roc_auc_score(y_test, y_pred) print("AUC-ROC Score:", auc_roc)
这将输出逻辑回归模型的AUC-ROC分数。
最后,我们可以使用`roc_curve()`函数和matplotlib库绘制ROC曲线。
# plot the ROC curve fpr, tpr, thresholds = roc_curve(y_test, y_pred) plt.plot(fpr, tpr) plt.title('ROC Curve') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.show()
输出
执行此代码时,它将绘制逻辑回归模型的ROC曲线。
此外,它还将在终端上打印AUC-ROC分数:
AUC-ROC Score: 0.9967245332459875