来自系列:应用机器学习
赛斯迪兰,MathWorks
使用ROC曲线评估分类模型。ROC曲线描绘了不同阈值的真实阳性率与假阳性率。
此视频遍历几个示例,这广泛地说明了ROC曲线以及您将使用它们的原因。它还概述了使用ROC曲线时可能遇到的有趣方案。
ROC曲线是评估分类模型的重要工具。它们也有点抽象,所以让我们先回顾一下评估模型的一些更简单的方法。
让我们使用一个与心灵的声音有关的例子。给出了一颗心的音频录音的71个不同的功能,我们试图分类心脏声音正常或异常。
要理解的最简单的指标之一是模型的准确性 - 或者,换句话说,它的频率是正确的。精度是有用的,因为它是单个数字,使比较变得容易。我现在正在看的分类器的准确性为86.3%。
精确度不能告诉你模型是对还是错。对此,有一个混淆矩阵,它显示了诸如真阳性率之类的东西。在本例中,准确率为74%,这意味着分类器正确预测异常心音的准确率为74%。我们还有9%的假阳性率。这是分类器在心音正常时预测异常的速率。
混淆矩阵给出了单个模型的结果。但大多数机器学习模型不仅仅是分类,它们实际上是计算概率。该模型的混淆矩阵显示了将概率为>=0.5的任何事物分类为异常,将概率<0.5的任何事物分类为正常的结果。但这个0.5不一定是固定的,实际上我们可以在概率0到1之间的任何地方设置阈值。
这就是ROC曲线进来的地方。ROC曲线绘制真正的阳性率与该阈值不同值的假阳性率。
让我们更详细地看一下。
这是我的模型,我将在我的测试数据上运行它以获得异常心声的概率。现在让我们开始在0.5时缩小这些概率。如果我这样做,我得到了真正的阳性率为74%,假阳性率为9%。
但是,如果我们想要非常保守,那么即使心脏声音异常的概率只是10%,我们也会将其分类为异常。
如果我们这样做,我们会明白这一点。
如果我们想要真的肯定,何时只有90%概率的声音才能异常?然后我们明白了这一点,这具有较低的误率,也具有较低的真正阳性率。
现在,如果我们在0到1之间创建了一堆价值,请说出1000个试验均匀间隔,我们会得到很多这些Roc积分,这就是我们从中获得Roc曲线的曲线。ROC曲线向我们展示了真正的阳性率和假阳性率的权衡,以实现该阈值的不同价值。
ROC曲线上将在0逗号0上有一点。在我们的情况下,一切都被归类为“正常”。并且总会有1个逗号1的点,其中一切都被归类为“异常”。
曲线下的区域是您的分类器有多好的度量。一个完美的分类器将有一个AUC11。在这个例子中,AUC为0.926。
在Matlab中,你不需要用我在这里完成的手来做所有这一切。您可以从Perfcurve功能获取ROC曲线和AUC。
现在我们有那么下来,让我们来看看ROC曲线的一些有趣的案例:
·如果一条曲线一直向上并向左,那么您有一个分类器,对于某个阈值完美地标记了测试数据中的每个点,并且您的AUC是1。你要么有一个非常好的分类器,要么你可能想要担心你没有足够的数据,或者你的分类器是过拟合的。
·如果一条曲线是从左下到右上的直线,那么你就有了一个不比随机猜测更好的分类器(其AUC为0.5)。您可能想尝试一些其他类型的模型,或回到您的训练数据,看看是否可以设计一些更好的功能。
·如果曲线看起来像锯齿状,那有时是由于不同类型的分类器的行为。例如,决策树仅具有有限数量的判定节点,并且这些节点中的每一个具有特定概率。当我们谈论的阈值超过我们早期谈话的阈值交叉时,锯齿在其中一个节点中的概率。锯齿性也通常来自测试数据中的差距。
您可以从这些示例中看到,ROC曲线可以是评估分类器性能的简单但细节的工具。
如果您想了解有关机器学习模型评估的更多信息,请查看以下说明中的链接。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。