主要内容

性能曲线,perfcurve

perfcurve函数计算接收机工作特征(ROC)曲线和其他性能曲线。在训练分类器之后,可以使用此函数在测试数据上评估分类器的性能。

或者,您可以通过创建一个rocmetrics对象。rocmetrics支持二进制和多类分类问题,并提供绘制ROC曲线的目标函数(情节),计算多类问题的平均ROC曲线(平均),并在创建对象后计算额外的度量(addMetrics).有关更多细节,请参见ROC曲线与绩效指标

输入分数和标签perfcurve

您可以使用perfcurve使用任何分类器,或者更广泛地说,使用为输入数据实例返回数值分数的任何函数。按照这里的惯例,

  • 对于任何给定实例,分类器返回的高分表示该实例可能来自正类。

  • 较低的分数表示实例可能来自负类。

对于一些分类器,您可以将分数解释为观察正类实例的后验概率X.这种评分的一个例子是决策树叶子中积极观察的分数。在这种情况下,分数在0到1的范围内,来自正类和负类的分数加起来是统一的。其他方法可以返回介于负无穷和正无穷之间的分数,从分数到后验类概率没有任何明显的映射。

perfcurve对输入分数范围没有任何要求。由于缺乏规范化,您可以使用perfcurve处理由任何分类、回归或拟合方法返回的分数。perfcurve没有对输入分数的性质或不同班级分数之间的关系做任何假设。举个例子,考虑一个有三个类的问题,一个B,C,假设某分类器对两个实例返回的分数如下:

一个 B C
实例1 0.4 0.5 0.1
实例2 0.4 0.1 0.5

如果您想计算类分离的性能曲线一个而且B,C如果忽略了,您需要解决选择中的模糊性一个B.你可以选择使用分数比率,s (A) / s (B),或分数差异,- s s (A) (B);这种选择可能取决于这些分数的性质及其规范化。perfcurve每个实例总是取一个分数。如果你只提供课堂分数一个perfcurve没有区分观察1和2。在这种情况下,性能曲线可能不是最佳的。

perfcurve用于返回分数的分类器,而不是仅返回预测类的分类器。作为一个反例,考虑一个决策树,对于有两个类的数据,它只返回硬分类标签0或1。在这种情况下,性能曲线减少到一个点,因为分类实例只能以一种方式分为正面和负面类别。

为输入,perfcurve接受一些数据的真实类标签和由分类器分配给这些数据的分数。默认情况下,该实用程序计算接收器工作特性(ROC)曲线,并返回1 -特异性的值,或假阳性率X敏感度,或者说真阳性率Y.你可以选择其他的标准X而且Y通过从多个提供的标准中选择一个或通过匿名函数指定任意标准。可以使用。显示计算的性能曲线情节(X, Y)

绩效指标的计算

perfcurve可以计算值为各种标准绘图或x——或y设在。所有这些标准都由2 × 2的混淆矩阵、2 × 2的成本矩阵和2 × 1的适用于班级数量的尺度向量来描述。

混淆矩阵

confusionchart矩阵,C,定义为

T P F N F P T N

在哪里

  • P代表“积极的”。

  • N代表“负面”。

  • T代表“true”。

  • F代表“false”。

例如,confusion矩阵的第一行定义了分类器如何识别阳性类的实例:C (1)正确识别的阳性实例的计数和C(1、2)错误识别为阴性的阳性实例的计数。

误分类代价矩阵

成本矩阵定义了每个类别错误分类的成本:

C o 年代 t P | P C o 年代 t N | P C o 年代 t P | N C o 年代 t N | N

在哪里成本(I | J)是否指定类实例的代价J去上课.通常成本(I | J) = 0我=我.的灵活性,perfcurve允许您为正确的分类指定非零成本。

尺度向量

这两种量表包括关于类概率的先验信息。perfcurve通过取来计算这些尺度之前规模(P) = (P) * N而且之前规模(N) = (N) * P和归一化规模(P) +规模(N)为1。P = TP + FN而且N = TN + FP分别是正类和负类中的实例总数。然后,该函数将刻度作为乘法因子应用于对应类的计数:perfcurve将正类的计数乘以规模(P)从负类开始计数规模(N).例如,考虑正预测值的计算,PPV = TP / (TP + FP)TP计数来自正类和《外交政策》计数来自负类。因此,您需要扩展TP通过规模(P)而且《外交政策》通过规模(N)的修正公式PPV考虑到先验概率,现在是:

P P V 年代 c 一个 l e P T P 年代 c 一个 l e P T P + 年代 c 一个 l e N F P

如果数据中的所有分数都高于某个阈值,perfcurve将所有实例分类为“积极”.这意味着TP正数类中的实例总数和《外交政策》负数类中的实例总数。在这种情况下,PPV是由先验给出的:

P P V p r o r P p r o r P + p r o r N

perfcurve函数返回两个向量,X而且Y的绩效衡量标准。的函数混乱成本,规模值。您可以按名称请求特定的度量值,或者提供函数句柄来计算自定义度量值。您提供的函数应该采用混乱成本,规模作为它的三个输入,并返回一个输出值的向量。

阈值

的标准X必须是正分类计数的单调函数,或者相当于提供的分数的阈值。如果perfcurve的值之间不能执行一对一的映射X标准和评分阈值,它退出并显示错误消息。

默认情况下,perfcurve的值X而且Y所有可能的分数阈值的标准。或者,它可以计算一个减少的特定数量X作为输入参数提供的值。无论哪种情况,for请求的值,perfcurve计算M + 1X而且Y.第一个值M + 1值都是特别的。perfcurve通过设置TP实例计数为零并设置TN到负类的总数。该值对应于拒绝所有的阈值。在标准的ROC曲线上,这转化为一个额外的点放在(0,0)

南得分值

如果有输入分数之间的值,perfcurve可以用两种方式处理它们:

  • 它可以丢弃行分数。

  • 它可以将它们添加到相应类别的错误分类计数中。

也就是说,对于任何阈值,实例具有阳性班级的分数被视为假阴性(FN)和实例阴性班级的分数被视为假阳性(《外交政策》).在本例中,的第一个值XY通过设置TP归零和设置TN总计数减去算作负类。为了举例说明,考虑这样一个例子:正类中有两行,负类中有两行,每对都有一个分数:

分数
0.2
积极的 0.7
积极的

如果丢弃行分数,随着分数线的变化,perfcurve计算如下表所示的性能度量。例如,0.5的截止值对应于中间行,其中第1行和第3行被正确分类,第2行和第4行被省略。

TP FN 《外交政策》 TN
0 1 0 1
1 0 0 1
1 0 1 0

如果你用他们各自班级的错误类别得分,perfcurve计算如下表所示的性能度量。例如,0.5的截止值对应于中间行,现在第2行和第4行被视为分类错误。注意,只有FN而且《外交政策》这两个表之间的列是不同的。

TP FN 《外交政策》 TN
0 2 1 1
1 1 1 1
1 1 2 0

多类分类问题

对于包含三个或更多类的数据,perfcurve接受一个正类和一个负类列表作为输入。函数计算X而且Y使用正类中的计数进行估计的值TP而且FN,并使用所有负类的计数进行估计TN而且《外交政策》perfcurve可以计算Y值分别为每个负类和,此外Y,返回一个大小的矩阵——- - - - - -C,在那里元素的个数在吗XY而且C是负类的个数。您可以使用此功能来监视负类贡献的组件。例如,您可以绘图TP计数的X设在和《外交政策》计数的Y设在。在本例中,返回的矩阵显示了如何《外交政策》组件被划分到负类中。

置信区间

你也可以用perfcurve估计置信区间。perfcurve使用交叉验证或引导计算置信度界限。如果你提供单元格数组标签而且分数perfcurve使用交叉验证,并将单元格数组中的元素视为交叉验证折叠。如果设置输入参数NBoot对于一个正整数,perfcurve生成nboot引导副本以计算逐点置信界限。

perfcurve使用以下两种方法之一估计置信界限:

  • 垂直平均(VA) -估计置信边界Y而且T的固定值X.使用XVals输入参数,用这种方法计算置信边界。

  • 的阈值平均(TA) -估计置信界限X而且Y在固定的阈值为积极的班级分数。使用TVals输入参数,用这种方法计算置信边界。

观察权重

若要使用观察权重而不是观察计数,可以使用“重量”参数的调用perfcurve.当使用此参数时,计算XY而且T或者通过交叉验证计算置信边界,perfcurve使用您提供的观察权重而不是观察计数。用bootstrap方法计算置信边界,perfcurve样品NN用权重替换多项式抽样概率。

参考文献

《ROC图:研究人员的注意事项和实际考虑》,机器学习31日。1(2004): 1-38。

茨威格,M.和G.坎贝尔。受试者工作特征(ROC)图:临床医学的基本评估工具。临床化学39岁的没有。4(1993): 561-577。

另请参阅

|||||

相关的话题

Baidu
map