京公网安备 11010802034615号
经营许可证编号:京B2-20210330
出品 | CDA数据分析研究院
数据科学是一个在过去几年里真正成长的术语,似乎每个人都想加入。最具吸引力的目标之一是利用数据资产的力量来创建能够预测各种结果的机器学习模型。通过定义明确的模型,可以确定能够预测结果的最重要影响因素,为战略假设开发有价值的洞察力,甚至可以通过友好的用户界面将模型的逻辑实现到软件应用程序中。
然而,在任何这种魔法发生之前,我们需要知道模型创建的预测是否有益!例如,如果我们的电子邮件程序的垃圾邮件分类器只能检测到50%的不需要的电子邮件或请求,我们都会非常愤怒。在这篇文章中,我将讨论如何使用每个数据科学家应该熟悉的经典工具来评估预测模型:接收器操作特性(ROC)曲线。
说明性实例:预测冠状动脉疾病
我在这篇文章中使用的数据集来自Bom等人对“疑似冠状动脉疾病患者冠状动脉斑块形态的靶向蛋白质组学的预测价值”。
这项研究检查了两种不同的结果,我将重点关注这篇文章的是没有冠状动脉疾病(CAD)。作者评估了蛋白质组学生物标志物在有症状患者中检测CAD缺失的预测能力。确定一组可以区分无CAD患者和需要立即干预的蛋白质的蛋白质组将提供更准确和成本有效的非侵入性诊断测试。
该数据集是测试多个数据科学主题的绝佳来源。通过少量观察,它很容易使用,但它还包含大量变量以增加复杂性。结果(使用冠状动脉计算机断层扫描血管造影术,或CCTA)的可行“黄金标准”被提供来测试预测。对于这篇文章,我将主要关注从单一模型构建ROC曲线,但可以在后面的帖子中使用此数据集深入研究更高级的主题。
预测精度测量概述
在开始创建曲线之前,了解一些评估预测准确性的常用指标非常重要。
积极类:我将正类定义为我试图检测的结果类。在这种情况下,缺少 CAD。虽然我意识到这可能会导致诊断测试领域中的“积极”和“消极”这两个术语混淆,但这种方式定义积极类更能推广到其他情况。
在这种情况下处理有症状患者的默认方法是让他们接受进一步的测试和程序。通过充分检测没有CAD的患者,我们将不再需要不必要的,更具侵入性的手术。
一般准确性:简单地说,有多少科目正确分类?
敏感性:正确识别真阳性的比例。在这种情况下,健康患者的比例由诊断工具正确识别。这有时被称为“召回”。
特异性:正确识别真阴性的比例。在这种情况下,通过诊断工具正确识别CAD患者的比例。
积极预测价值:该工具报告的阳性比例,实际上是积极的。对于诊断工具报告缺乏CAD的患者组,PPV是实际上没有患病的患者的比例。这有时被称为“精确度”。
负面预测值:该工具报告的负面影响的比例,实际上是负面的。对于诊断工具报告存在CAD的患者组,NPV是实际上没有CAD的患者的比例。
不要担心,如果你的大脑试图理清所有这些指标。这些术语很容易混淆,特别是在第一次学习它们时。我发现在2x2表中可视化内容最容易。
二进制类的混淆矩阵(正=没有CAD,负= CAD)
曲线的解剖
ROC曲线的优点在于它是一种易于理解的图形工具,可应用于您创建的任何预测模型。以下是曲线的基础知识:
轴:灵敏度和误报率
首先,我们需要为情节创造空间。通过将灵敏度与1-特异性(或假阳性率)作图来建立ROC曲线。
预测概率
现在我们需要绘制一些东西。回想一下,预测模型会将每个观察分配给最可能的类(在这种情况下,没有CAD与CAD的存在)。模型实际上在做的是计算属于特定类的概率。在0和1之间选择截止值,并且如果计算的概率超过该阈值,则将观察值分配给该类。
您可能会发现在大多数软件包中,默认截止值设置为0.5,逻辑是,在二进制类中,可以将观察值分配给最可能的类。但是,正如我们所看到的,最好在考虑灵敏度和特异性之间的权衡之后选择截止值。
通过绘制所有可能的截止值来生成ROC曲线,所述截止值是分配给每个观察的概率。选择不同的截止值将改变预测工具的灵敏度和特异性,因此,可以使用相关的灵敏度和1-特异性作为坐标在图的空间中绘制每个截止概率。最靠近左上角的点(SN = 1,FPR = 0)提供精度度量之间的最大平衡。
曲线下面积(AUC)
AUC是一个类似于二元模型的一致性或c统计量的度量。这是具有正类的观察将具有比在负类中的观察更大的预测概率的概率。
如果AUC = 1,则表示模型有完美的预测。如果AUC = 0.5,则意味着模型无法区分类。它在逻辑回归中的行为与r平方相似,因为添加更多预测因子会增加AUC。因此,在分析中包括对外部数据的交叉验证或验证非常重要。
AUC可用于评估不同的预测模型。
参考线
绘制参考线通常是个好主意,其中AOC = 0.5在ROC图上。这提供了比较曲线的基线视觉效果。
生成ROC曲线
虽然可以使用几个不同的程序来开发预测模型和ROC曲线,但我已经在R中实现了分析。
为了预测结果,我使用xgboost创建了一个分类模型,其中蛋白质生物标记物作为预测因子,并使用重新取代方法来预测数据集中的结果。使用预测的概率,我可以形成上面显示的ROC曲线。
注意:该程序也设置为使用k-fold交叉验证,或者可以更新以利用外部验证,例如列车和测试集的70/30分割(尽管我想要更多数据)。
解释曲线
AUC为0.738,实际上低于作者用他们的机器学习方法所发现的(堆叠可能提高了分类器的准确性)。但是,我更关心的是选择合适的截止值并权衡工具的成本和收益。
模型的总体准确性是不错的,但是当发生假阳性结果时,会发生CAD患者而不是通过必要的程序?让我们同意这不会是一件好事。
为了安全起见,尽可能减少诊断工具的误报率可能是个好主意。在生成混淆矩阵时,很容易选择保持低误报率的概率截止值。这将作为谁被标记为无CAD的决定标准。
通过选择保持90%特异性(10%假阳性率)的概率截止值,分类工具能够检测到42%没有CAD的患者(敏感性= 0.42)。在这种情况下,这实际上是一个非常好的结果,因为现状是让所有有症状的患者接受更具侵入性的诊断程序。尽管42%的灵敏度可能听起来很低,但在这种特定情况下,这是一个很有希望的结果。
在开发用于预测有症状患者的CAD状态的分类器时,最重要的是在保持低误报率的同时实现尽可能高的灵敏度。
ROC曲线的优点在于您可以从单个图像中可视化所有这些性能指标。将曲线与竞争模型进行比较是一种快速简便的方法,可以选择合适的分类或诊断工具。
我只研究了使用ROC曲线和二进制分类工具,但它可以很容易地扩展到多类方案。在同一图形上,可以绘制与每个特定类别中的概率相对应的多条曲线。
在撰写本文时,我详细介绍了如何构建ROC曲线,目的是增加对预测精度度量的理解,以及如何评估您可能正在构建的这些数据科学分类工具。
标题:Illustrating Predictive Models with the ROC Curve
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22