性能曲线,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
,定义为
在哪里
P代表“积极的”。
N代表“负面”。
T代表“true”。
F代表“false”。
例如,confusion矩阵的第一行定义了分类器如何识别阳性类的实例:C (1)
正确识别的阳性实例的计数和C(1、2)
错误识别为阴性的阳性实例的计数。
误分类代价矩阵
成本矩阵定义了每个类别错误分类的成本:
在哪里成本(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
考虑到先验概率,现在是:
如果数据中的所有分数都高于某个阈值,perfcurve
将所有实例分类为“积极”
.这意味着TP
正数类中的实例总数和《外交政策》
负数类中的实例总数。在这种情况下,PPV
是由先验给出的:
的perfcurve
函数返回两个向量,X
而且Y
的绩效衡量标准。的函数混乱
,成本
,规模
值。您可以按名称请求特定的度量值,或者提供函数句柄来计算自定义度量值。您提供的函数应该采用混乱
,成本
,规模
作为它的三个输入,并返回一个输出值的向量。
阈值
的标准X
必须是正分类计数的单调函数,或者相当于提供的分数的阈值。如果perfcurve
的值之间不能执行一对一的映射X
标准和评分阈值,它退出并显示错误消息。
默认情况下,perfcurve
的值X
而且Y
所有可能的分数阈值的标准。或者,它可以计算一个减少的特定数量X
作为输入参数提供的值。无论哪种情况,for米
请求的值,perfcurve
计算M + 1
值X
而且Y
.第一个值M + 1
值都是特别的。perfcurve
通过设置TP
实例计数为零并设置TN
到负类的总数。该值对应于拒绝所有的
阈值。在标准的ROC曲线上,这转化为一个额外的点放在(0,0)
.
南得分值
如果有南
输入分数之间的值,perfcurve
可以用两种方式处理它们:
它可以丢弃行
南
分数。它可以将它们添加到相应类别的错误分类计数中。
也就是说,对于任何阈值,实例具有南
阳性班级的分数被视为假阴性(FN
)和实例南
阴性班级的分数被视为假阳性(《外交政策》
).在本例中,的第一个值X
或Y
通过设置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
,在那里米
元素的个数在吗X
或Y
而且C
是负类的个数。您可以使用此功能来监视负类贡献的组件。例如,您可以绘图TP
计数的X
设在和《外交政策》
计数的Y
设在。在本例中,返回的矩阵显示了如何《外交政策》
组件被划分到负类中。
置信区间
你也可以用perfcurve
估计置信区间。perfcurve
使用交叉验证或引导计算置信度界限。如果你提供单元格数组标签
而且分数
,perfcurve
使用交叉验证,并将单元格数组中的元素视为交叉验证折叠。如果设置输入参数NBoot
对于一个正整数,perfcurve
生成nboot
引导副本以计算逐点置信界限。
perfcurve
使用以下两种方法之一估计置信界限:
垂直平均(VA) -估计置信边界
Y
而且T
的固定值X
.使用XVals
输入参数,用这种方法计算置信边界。的阈值平均(TA) -估计置信界限
X
而且Y
在固定的阈值为积极的班级分数。使用TVals
输入参数,用这种方法计算置信边界。
观察权重
若要使用观察权重而不是观察计数,可以使用“重量”
参数的调用perfcurve
.当使用此参数时,计算X
,Y
而且T
或者通过交叉验证计算置信边界,perfcurve
使用您提供的观察权重而不是观察计数。用bootstrap方法计算置信边界,perfcurve
样品N的N用权重替换多项式抽样概率。
参考文献
另请参阅
rocmetrics
|addMetrics
|平均
|情节
|perfcurve
|confusionchart