从系列:应用机器学习
赛斯迪兰,MathWorks
使用ROC曲线评估分类模型。ROC曲线绘制了不同阈值下的真阳性率与假阳性率。
此视频遍及几个示例,这些示例广泛地说明了Roc曲线以及为什么要使用它们。它还概述了使用ROC曲线时可能遇到的有趣方案。
ROC曲线是评估分类模型的重要工具。它们也有点抽象,因此让我们首先审查一些更简单的评估模型的方法。
让我们举一个关于心的声音的例子。从一个心脏的音频记录中给出71个不同的特征,我们试着对心脏听起来是正常还是不正常进行分类。
最容易理解的指标之一是模型的准确性——或者换句话说,它是正确的频率。准确性是有用的,因为它是一个单一的数字,便于比较。我现在看到的分类器的准确率是86.3%。
准确性没有告诉你是模型是正确还是错的。为此,有混乱的矩阵,这表明了真正的阳性率。在这种情况下,它为74%,这意味着分类器正确预测的异常心脏声音74%的时间。我们也有9%的假阳性率。这是当心脏声音实际正常时,分类器预测异常的速率。
混淆矩阵为单个模型提供结果。但大多数机器学习模型不仅仅是对事物进行分类,他们实际上是计算概率。该模型的困惑矩阵显示了将具有> = 0.5的概率分类为异常的任何可能的结果,以及概率<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的点,其中一切都被归类为“异常”。
曲线下的区域是我们的分类器有多好的度量。一个完美的分类器将有一个1的1。在这个例子中,AUC为0.926。
在Matlab中,你不需要用我在这里完成的手才能做到这一切。您可以从Perfcurve功能获取ROC曲线和AUC。
现在我们知道了,让我们看看ROC曲线的一些有趣的例子:
·如果曲线一直向上向左,你有一个分类器,对于某个阈值完美标记测试数据中的每个点,你的AUC是1。要么你有一个非常好的分类器,要么你可能想要考虑你没有足够的数据或者你的分类器是过拟合的。
·如果一条曲线是从左下到右上的直线,那么你有一个比随机猜测更好的分类器(它的AUC是0.5)。您可能想尝试一些其他类型的模型,或者回到您的训练数据,看看是否可以设计一些更好的特征。
·如果一条曲线看起来有点锯齿状,这有时是由于不同类型的分类器的行为。例如,决策树只有有限数量的决策节点,而每个节点都有特定的概率。当我们前面讨论的阈值越过一个节点的概率时,就会产生锯齿。锯齿度通常也来自于测试数据中的缺口。
您可以从这些示例中看到,ROC曲线可以是一个简单但对分类性能进行分类的更简单但细致的工具。
如果您想了解有关机器学习模型评估的更多信息,请查看以下说明中的链接。
您还可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。