机器学习中的PR曲线和ROC曲线

机器学习评估指标解析

主要是我对周志华《机器学习》第二章模型估计与选择中一些内容的总结

1.查准率、查全率和F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(TP),假反例(FN),假正例(FP),真反例(TN),具体分类结果如下
这里写图片描述
查准率P和查全率R分别定义为:

这里写图片描述

查准率关心的是”预测出正例的正确率”即从正反例子中挑选出正例的问题。
查全率关心的是”预测出正例的保证性”即从正例中挑选出正例的问题。

这两者是一对矛盾的度量,查准率可以认为是”宁缺毋滥”,适合对准确率要求高的应用,例如商品推荐,网页检索等。查全率可以认为是”宁错杀一百,不放过1个”,适合类似于检查走私、逃犯信息等。

下图为查准率-查全率曲线(P-R图)

### 机器学习中的PR曲线ROC曲线 #### PR曲线概念 精确率-召回率曲线Precision-Recall Curve,简称PR曲线)是一种用于评估分类模型性能的工具。它通过在不同阈值下绘制精确率(Precision)召回率(Recall)的变化趋势来反映模型的表现[^3]。 - **精确率 (Precision)** 表示被预测为正类的样本中有多少比例实际上是正类。 - **召回率 (Recall)** 则衡量实际正类中有多大比例被成功识别为正类。 对于类别分布不均衡的情况,PR曲线能够更好地体现模型对少数类别的区分能力[^4]。 #### ROC曲线概念 接收者操作特性曲线(Receiver Operating Characteristic Curve,简称ROC曲线)同样用来评价二分类模型的好坏。其核心思想是在不同的决策阈值下观察假阳率(False Positive Rate, FPR真阳率(True Positive Rate, TPR)之间的权衡关系[^1]。 - **FPR** 定义为错误标记为正类的比例。 - **TPR** 是指正确检测到的实际正类所占总正类的比例。 通常认为,当ROC曲线越接近左上角时,说明该分类器具有更好的辨别力。 #### 联系与区别 两者均基于调整分类边界得到多组统计量并绘制成图形来进行质量评判,但它们侧重点有所不同: - **共同点**: 都依赖于改变判定界限从而获取多个可能的结果组合; - **主要差异**: - 应用场合方面,在面对极度倾斜的数据集时,由于PR图仅考虑目标群体内部情况而不受背景干扰影响较大这一特点使其成为首选方案之一。 - 另外从直观感受上看,AUC值可以作为整体效能度量标准应用于两种图表之中,不过具体数值意义会因类型各异而有所偏差[^5]。 ```python import numpy as np from sklearn.metrics import precision_recall_curve, roc_curve # 假设y_true是真实标签,y_scores是预测得分 precision, recall, _ = precision_recall_curve(y_true, y_scores) fpr, tpr, _ = roc_curve(y_true, y_scores) def plot_curves(): import matplotlib.pyplot as plt fig, ax = plt.subplots() # 绘制PR曲线 ax.plot(recall, precision, label='PR curve') # 绘制ROC曲线 ax.plot(fpr, tpr, label='ROC curve', linestyle="--") ax.set_xlabel('Recall / False Positive Rate') ax.set_ylabel('Precision / True Positive Rate') ax.legend(loc="best") plt.show() plot_curves() ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值