下图显示了假阳性率与真阳性率的连续曲线:
但是,我没有立即得到的是如何计算这些费率。如果将方法应用于数据集,则该方法具有一定的FP速率和一定的FN速率。这不是说每种方法都应该有一个点而不是一条曲线吗?当然,有多种方法可以配置一个方法,产生多个不同的点,但是我不清楚这种比率的连续性是如何产生的或如何产生的。
下图显示了假阳性率与真阳性率的连续曲线:
但是,我没有立即得到的是如何计算这些费率。如果将方法应用于数据集,则该方法具有一定的FP速率和一定的FN速率。这不是说每种方法都应该有一个点而不是一条曲线吗?当然,有多种方法可以配置一个方法,产生多个不同的点,但是我不清楚这种比率的连续性是如何产生的或如何产生的。
Answers:
该图是ROC曲线,并且针对不同阈值计算了(误报率,真正率)点。假设您具有统一的效用函数,则最佳阈值是最接近(0,1)的点的阈值。
生成ROC曲线(=接收器工作特性曲线):
假设我们有一个概率二元分类器,例如逻辑回归。在呈现ROC曲线之前,必须先了解混淆矩阵的概念。当我们进行二进制预测时,可能有4种类型的错误:
为了获得混淆矩阵,我们遍历了模型所做的所有预测,并计算了这四种类型的错误中每种错误发生的次数:
在混淆矩阵的此示例中,在已分类的50个数据点中,正确分类了45个,错误分类了5个。
由于要比较两个不同的模型,使用单个度量标准而不是几个度量标准通常更方便,因此我们从混淆矩阵中计算出两个度量标准,然后将其合并为一个:
要将FPR和TPR合并为一个指标,我们首先要计算两个前一个指标,并使用许多不同的阈值(例如)进行逻辑回归,然后将它们绘制在一个图上, FPR值在横坐标上,TPR值在纵坐标上。结果曲线称为ROC曲线:
在此图中,蓝色区域对应于接收器工作特性(AUROC)曲线下方的区域。对角线中的虚线表示随机预测变量的ROC曲线:AUROC为0.5。随机预测变量通常用作基准,以查看模型是否有用。
如果您想获得一些第一手的经验:
Morten的答案正确地解决了标题中的问题-该图确实是ROC曲线。它是通过将一系列误报率(FPR)与相应的误报率相对应而得出的。
但是,我想回复您在帖子正文中提出的问题。
如果将方法应用于数据集,则该方法具有一定的FP速率和一定的FN速率。这不是说每种方法都应该有一个点而不是一条曲线吗?当然,有多种方法可以配置一个方法,产生多个不同的点,但是我不清楚这种比率的连续性是如何产生的或如何产生的。
许多机器学习方法具有可调参数。例如,逻辑回归的输出是类成员资格的预测概率。将具有高于某个阈值的预测概率的所有点分类到一个类别,将其余分类到另一个类别的决策规则可以创建灵活的分类器范围,每个分类器具有不同的TPR和FPR统计信息。对于随机森林(也就是考虑树的票数)或SVM(您正在考虑与超平面的签名距离)的情况,也可以这样做。
在进行交叉验证以评估样本外性能的情况下,通常的做法是使用预测值(投票,概率,有符号距离)生成TPR和FPR序列。这通常看起来像一个阶跃函数,因为通常在每个预测值处只有一个点从TP移到FN或从FP移到FN(即,所有样本外预测值都是唯一的)。在这种情况下,尽管存在用于计算TPR和FPR 的连续选项,但是TPR和FPR函数将不会连续,因为只有有限的多个样本外点,因此生成的曲线将具有阶梯状外观。
从维基百科:
ROC曲线最初是由电子工程师和雷达工程师在第二次世界大战期间开发的,用于检测战场中的敌对物体,并很快被引入心理学以解释刺激的感知检测。自那时以来,ROC分析已在医学,放射学,生物特征学和其他领域中使用了数十年,并且越来越多地用于机器学习和数据挖掘研究中。
ROC也称为相对工作特性曲线,因为它是随着标准更改而对两个工作特性(TPR和FPR)的比较。
您可以将两个轴视为必须花费的成本,二进制分类器才能运行。理想情况下,您希望产生尽可能低的误报率和尽可能高的真实率。那就是您希望二元分类器为尽可能多的真实肯定调用更少的假肯定。
具体来说,假设一个分类器可以通过测量某些生物标记物的数量来检测是否存在某种疾病。想象一下,生物标记的值在0(不存在)到1(饱和)之间。什么水平可以最大程度地检测疾病?可能的情况是,在某种程度上,生物标志物会将某些人分类为患有疾病,但他们没有疾病。这些都是误报。当然,有些人确实确实患有疾病时会被分类为患有疾病。这些是真正的积极因素。
ROC通过考虑所有可能的阈值来评估所有阳性的真阳性与假阳性的比例。