天天看点

读书笔记《Outlier Analysis》 第一章(部分) 异常值的评估技术

注:异常值、孤立点、离群点三个术语是同一个意思。

1.外部评估技术

异常值一般是使用外部评估技术标准,因为大多数异常值的检测都是无监督问题。如果某个应用的异常检测是有监督的话,则其可以使用内部评估技术,所谓的内部评估技术,即可以使用标签ground-truth(或者叫做真实值)去验证预测值是否准确。

由于使用外部评估技术,所以各种模型对应的评估机制是不一样的,即线性模型使用线性模型的评估技术,邻近模型使用邻近模型的评估技术。

2.精确率Precision和召回率Recall(具体概念可参考简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义)

在说到精确率和召回率的问题时,涉及到两个常见的概念,即假阳性和假阴性。

大多数异常检测算法都会输出一个异常值分数,然后这个分数上的阈值被用来将分数转换为异常值标签(如1表示异常,0表示非异常)。如果对阈值进行过严格的选择,以最小化声明的异常值的数量(即努力地使异常值的数量降到最低),那么算法将错过真正的异常点,有可能使异常值判断为非异常值,即所谓的假阴性。另一方面,如果算法将太多的数据点声明为异常值,则会导致将不是异常值判断为异常值,即所谓的假阳性。

对于假阳性和假阳性的这种权衡,可以使用精确率Precision和召回率Recall来衡量。

对于异常值分数上的任何给定阈值t,声明的离群点集合为S(t)(相对于预测值而言)。随着t的变化,S(t)的大小也随之变化,即若t越小,则说明有更少的点被定义为离群点,集合S(t)也就越小;若t越大,则说明有更多的点被定义为离群点,集合S(t)也就越大。G表示数据集中异常值(离群点)的真集(真正的异常值,相对于样本而言)。然后,对于任何给定的阈值t, 精确率被定义为报告的异常值的百分比,即检测的异常值集合中S(t)有多少是真正的被正确地声明为异常值的点[S(t)交G]。精确率可用如下公式:

读书笔记《Outlier Analysis》 第一章(部分) 异常值的评估技术

对于给定的t,Precision(t)不一定是单调的,因为分子和分母都可能随t的变化而变化。

对于召回率,其定义是在阈值t上,被正确地声明为异常值的点[S(t)交G]占真正异常值集合G的百分比。召回率公式如下:

读书笔记《Outlier Analysis》 第一章(部分) 异常值的评估技术

3.接收机工作特性曲线ROC和AUC(曲线下面积)

通过改变参数t,可以在精确率和召回之间绘制一条曲线。 这被称为精确度-召回曲线。 这条曲线不一定是单调的。

对于更有效的算法,高精度的值通常对应于低的召回率,反之亦然。当按异常值分数排序时,也可以通过使用数据点排序上的阈值来生成精度找回PR曲线。

接收机工作特性曲线ROC与精确率-召回曲线密切相关。在这种情况下,真阳性率和假阳性率相对应。真阳性率TPR(t)的定义和召回率相同,即被正确预测的异常值[S(t)交G]占真正异常值集合G的百分比。

读书笔记《Outlier Analysis》 第一章(部分) 异常值的评估技术

看到一篇博客,讲ROC和AUC,我觉得讲的比价好,附上链接ROC曲线与AUC

以及B站上有个视频:在线工作坊- Python 机器学习 - 确定精度和接收机特性(ROC)曲线

TPR:真阳性率

FPR:假阳性率

读书笔记《Outlier Analysis》 第一章(部分) 异常值的评估技术

ROC曲线(接收机工作特性曲线)

ROC曲线显示分类模型在不同阈值(分类到特定类的可能性)下的性能。 它绘制了真阳性率和假阳性率。 降低阈值将增加您的真实肯定率,但会牺牲您的错误肯定率,反之亦然。

AUC(曲线下面积)

AUC也称为" ROC曲线下的面积"。 简单地说,AUC会告诉您正确分类的可能性。 较高的AUC代表更好的模型。

接收器工作特性(ROC)曲线用于确定模型的适当阈值,该阈值给出概率分数作为二进制分类中的输出。 曲线下面积(AUC)分数用于比较不同的模型。 但是,它们可能会受到不平衡数据集的影响。

继续阅读