主要内容

perfcurve

接受者操作特征(ROC)曲线或其他分类器输出性能曲线

描述

例子

(X,Y)= perfcurve (标签,分数,posclass)返回XYROC曲线的坐标向量分类器的预测,分数,因为真正的类标签,标签和积极的类标签,posclass。你可以使用可视化性能曲线情节(X, Y)

(X,Y,T)= perfcurve (标签,分数,posclass)返回一个数组的阈值分类器分数的计算值XY

例子

(X,Y,T,AUC)= perfcurve (标签,分数,posclass)收益曲线下的面积的计算值XY

例子

(X,Y,T,AUC,OPTROCPT)= perfcurve (标签,分数,posclass)返回ROC曲线的最优操作点。

(X,Y,T,AUC,OPTROCPT,SUBY)= perfcurve (标签,分数,posclass)返回Y值为负的子类。

例子

(X,Y,T,AUC,OPTROCPT,SUBY,SUBYNAMES)= perfcurve (标签,分数,posclass)返回负类名。

(___)= perfcurve (标签,分数,posclass,名称,值)返回一个ROC曲线的坐标和任何其他输出参数从以前的语法,由一个或多个指定附加选项名称,值对参数。

例如,您可以提供一系列负类,改变XY标准,计算逐点的置信界限使用交叉验证或引导,指定误分类代价,或并行计算置信界限。

例子

全部折叠

加载示例数据。

负载fisheriris

只使用前两个特性预测变量。定义一个二分类问题,只使用对应的测量物种virginica杂色的。

pred =量(51:结束,1:2);

定义二进制响应变量。

resp = (1:10 0) ' > 50;%多色的= 0,virginica = 1

符合逻辑回归模型。

mdl = fitglm (pred职责,“分布”,“二”,“链接”,分对数的);

计算ROC曲线。使用逻辑回归模型的概率估计的分数。

成绩= mdl.Fitted.Probability;(X, Y, T, AUC) = perfcurve(物种(51:,:),分数,“virginica”);

perfcurve存储阈值的数组T

显示曲线下的面积。

AUC
AUC = 0.7918

曲线下的面积是0.7918。最大的AUC是1,对应于一个完美的分类器。更大的AUC值表明更好的分类性能。

绘制ROC曲线。

情节(X, Y)包含(的假阳性率)ylabel (“真阳性率”)标题(“中华民国的分类逻辑回归”)

图包含一个坐标轴对象。坐标轴对象与标题中华民国为分类Logistic回归,包含假阳性,ylabel真阳性率包含一个类型的对象。

另外,您可以通过创建一个计算和绘制ROC曲线rocmetrics对象和使用对象的功能情节

rocObj = rocmetrics(物种(51:,:),分数,“virginica”);情节(rocObj)

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线,包含假阳性,ylabel真阳性率包含3 roccurve类型的对象,散点、线。这些对象代表virginica (AUC = 0.7918), virginica模型操作点。

情节函数显示一个实心圆模型操作点,传说显示类名和AUC值曲线。

加载示例数据。

负载电离层

X是一个351 x34实值矩阵的预测。Y是一个字符数组的类标签:“b”坏和雷达的回报‘g’好的雷达返回。

重新格式化响应符合逻辑回归。使用3至34个预测变量。

resp = strcmp (Y,“b”);% resp = 1,如果Y = b,或0如果Y =‘g’pred = X (: 34);

符合逻辑回归模型来估计后验概率雷达回波是坏的。

mdl = fitglm (pred职责,“分布”,“二”,“链接”,分对数的);score_log = mdl.Fitted.Probability;%概率估计

计算使用概率评分标准ROC曲线。

[Xlog, Ylog Tlog AUClog] = perfcurve(职责、score_log“真正的”);

训练支持向量机分类器在相同的示例数据。标准化数据。

mdlSVM = fitcsvm (pred职责,“标准化”,真正的);

计算后验概率(分数)。

mdlSVM = fitPosterior (mdlSVM);[~,score_svm] = resubPredict (mdlSVM);

第二列的score_svm包含坏雷达的后验概率的回报。

计算标准ROC曲线使用分数从支持向量机模型。

[Xsvm, Ysvm Tsvm AUCsvm] = perfcurve(职责,score_svm (:, mdlSVM.ClassNames),“真正的”);

适合朴素贝叶斯分类器在同一样本数据。

mdlNB = fitcnb (pred、职责);

计算后验概率(分数)。

[~,score_nb] = resubPredict (mdlNB);

计算标准ROC曲线使用朴素贝叶斯分类的分数。

[Xnb, Ynb, Tnb AUCnb] = perfcurve(职责,score_nb (:, mdlNB.ClassNames),“真正的”);

绘制ROC曲线在同一图。

情节(Xlog Ylog)情节(Xsvm Ysvm)情节(Xnb Ynb)传说(逻辑回归的,“万博1manbetx支持向量机”,“天真的贝叶斯,“位置”,“最佳”)包含(的假阳性率);ylabel (“真阳性率”);标题(ROC曲线的逻辑回归、支持向量机和朴素贝叶斯分类的)举行

图包含一个坐标轴对象。坐标轴对象标题ROC曲线进行逻辑回归、支持向量机、朴素贝叶斯分类,包含假阳性,ylabel真阳性率包含3线类型的对象。这些对象代表逻辑回归,支持向量机,朴素贝叶斯。万博1manbetx

虽然支持向量机产生更好的ROC值更高的门槛,逻辑回归通常更善于区分不好雷达的回报。朴素贝叶斯的ROC曲线通常是低于其他两个ROC曲线,这表明分类性能比其他两个分类器的方法。

比较曲线下的面积为所有三个分类器。

AUClog
AUClog = 0.9659
AUCsvm
AUCsvm = 0.9489
AUCnb
AUCnb = 0.9393

逻辑回归的AUC最高测量分类和朴素贝叶斯的最低。这一结果表明,逻辑回归样本具有更好的平均性能对于此示例数据。

这个例子展示了如何确定更好的为一个定制的内核函数参数值分类器使用ROC曲线。

生成一个随机的在单位圆内的点的集合。

rng (1);%的再现性n = 100;%的数量分象限r1 =√兰特(2 * n, 1));%随机半径t1 =[π/ 2 *兰德(n, 1);(π/ 2 *兰德(n - 1) +π)];%随机角度Q1和Q3X1 = (r1。* cos (t1) r1。* sin (t1)];% Polar-to-Cartesian转换r2 =√兰特(2 * n, 1));t2 =[π/ 2 *兰德(n, 1) +π/ 2;(π/ 2 *兰德(n, 1) -π/ 2)];%随机角度为第二季度和第四季度X2 = [r2。* cos (t2) r2。* sin (t2)];

定义预测变量。标签在第一和第三象限属于积极的类,和那些在第二和第四象限负类。

pred = [X1;X2);resp = 1 (4 * n, 1);职责(2 * n + 1:结束)= 1;%的标签

创建函数mysigmoid.m接受两个矩阵的特征空间作为输入,并将其转化为一个格拉姆矩阵使用乙状结肠内核。

函数G = mysigmoid (U, V)% s形的内核函数斜率伽马和拦截cγ= 1;c = 1;G =双曲正切(γ*你* V ' + c);结束

一个使用乙状核函数的支持向量机分类器训练。是一种很好的做法标准化数据。

SVMModel1 = fitcsvm (pred职责,“KernelFunction”,“mysigmoid”,“标准化”,真正的);SVMModel1 = fitPosterior (SVMModel1);[~,scores1] = resubPredict (SVMModel1);

γ= 0.5;在mysigmoid.m和另存为mysigmoid2.m。,训练SVM分类器使用调整乙状结肠内核。

函数G = mysigmoid2 (U, V)% s形的内核函数斜率伽马和拦截cγ= 0.5;c = 1;G =双曲正切(γ*你* V ' + c);结束
SVMModel2 = fitcsvm (pred职责,“KernelFunction”,“mysigmoid2”,“标准化”,真正的);SVMModel2 = fitPosterior (SVMModel2);[~,scores2] = resubPredict (SVMModel2);

计算ROC曲线和曲线下的面积(AUC)两种模型。

~ (x1, y1, auc1] = perfcurve(职责,scores1 (:, 2), 1);[x2, y2, ~, auc2] = perfcurve(职责,scores2 (:, 2), 1);

绘制ROC曲线。

情节(x1, y1)情节(x2, y2)传奇(“γ= 1”,“γ= 0.5”,“位置”,“本身”);包含(的假阳性率);ylabel (“真阳性率”);标题(中华民国的分类支持向量机的);

γ的核函数参数设置为0.5给更好的分类结果。

比较AUC的措施。

auc1 auc2
auc1 auc2 = 0.9985 = 0.9518

对伽马曲线下的面积设置为0.5高于伽马设置为1。这也证实了γ参数值0.5产生更好的结果。的视觉比较分类性能与这两个γ参数值,明白了训练SVM分类器使用自定义内核

加载示例数据。

负载fisheriris

列向量,物种三个不同的种类,包括虹膜花:setosa, virginica杂色的。双矩阵包含四种类型的测量在花:花萼长度,萼片宽,花瓣长度和花瓣宽度。所有的措施都在厘米。

训练一个分类树使用花萼长度和宽度作为预测变量。这是一个很好的练习来指定类名。

模型= fitctree(量(:,1:2),物种,“类名”,{“setosa”,“多色的”,“virginica”});

预测类标签和分数基于树的物种模型

[~,分数]= resubPredict(模型);

分数是一个观察的后验概率(中的一行数据矩阵)属于一个类。的列分数对应于指定的类“类名”。所以,第一列对应于setosa,第二个对应于多色的,第三列对应于virginica。

计算的预测的ROC曲线观察属于杂色的,考虑到真正的类标签物种。计算最优操作点和y值为负的子类。返回负类的名称。

因为这是一个多类问题,你不能仅仅供应(得分:2)作为输入,perfcurve。这样做不会给perfcurve足够的信息两个负类的分数(setosa和virginica)。这个问题是与二元分类问题,知道一个类的成绩足以确定其他类的分数。因此,您必须供应perfcurve与功能因素的得分两个负类。一个这样的函数是 年代 c o r e ( : , 2 ) - - - - - - 马克斯 ( 年代 c o r e ( : , 1 ) , 年代 c o r e ( : , 3 ) ) ,对应于one-versus-all编码设计。

diffscore1 =分数(:,2)- max(分数(:1),分数(:,3));

中的值diffscore分类评分为一个二进制的问题,对第二课堂作为正类,其余为负类。

[X, Y, T, ~, OPTROCPT suby, subnames] = perfcurve(物种,diffscore1,“多色的”);

X默认情况下,假阳性率(影响或1-specificity)Y默认情况下,是真正的积极率(召回或敏感性)。积极的类标签多色的。因为消极的类没有定义,perfcurve假设观察,不属于积极的类是一个类。函数接受它作为负类。

OPTROCPT
OPTROCPT =1×20.1000 - 0.8000
suby
suby =12×20 0 0.1800 0.1800 0.4800 0.4800 0.5800 0.5800 0.6200 0.6200 0.8000 0.8000 0.8800 0.8800 0.9200 0.9200 0.9600 0.9600 0.9800 0.9800⋮
subnames
subnames =1 x2单元格{' setosa} {' virginica '}

绘制ROC曲线和最优操作点ROC曲线。

情节(X, Y)情节(OPTROCPT (1) OPTROCPT (2),“罗”)包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线分类的分类树”)举行

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线分类分类树,包含假阳性,ylabel真阳性率包含2线类型的对象。一个或多个行显示的值只使用标记

找到对应的阈值的最优操作点。

T ((X = = OPTROCPT (1) & (Y = = OPTROCPT (2)))
ans = 0.2857

指定virginica负类,计算和绘制ROC曲线多色的

同样的,你必须提供perfcurve与功能因素分数负类的。使用一个函数的一个例子 年代 c o r e ( : , 2 ) - - - - - - 年代 c o r e ( : , 3 )

diffscore2 =分数(:,2)——分数(:,3);[X, Y, ~, ~, OPTROCPT] = perfcurve(物种,diffscore2,“多色的”,“negClass”,“virginica”);OPTROCPT
OPTROCPT =1×20.1800 - 0.8200
人物,情节(X, Y)情节(OPTROCPT (1) OPTROCPT (2),“罗”)包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线分类的分类树”)举行

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线分类分类树,包含假阳性,ylabel真阳性率包含2线类型的对象。一个或多个行显示的值只使用标记

或者,您可以使用一个rocmetrics对象创建ROC曲线。rocmetrics万博1manbetx使用one-versus-all编码设计,支持多类分类问题,减少了多类问题为一组二元问题。您可以检查性能的多级问题每个类为每个类策划one-versus-all ROC曲线。

计算性能指标通过创建一个rocmetrics对象。指定正确的标签,分类分数,和类名。

rocObj = rocmetrics(物种,分数,Model.ClassNames);

情节为每个类通过使用ROC曲线情节的函数rocmetrics

图绘制(rocObj)

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线,包含假阳性,ylabel真阳性率包含7 roccurve类型的对象,散点、线。这些对象代表setosa (AUC = 0.993), setosa模型操作点,多色的(AUC = 0.9358),杂色的模型操作点,virginica (AUC = 0.951), virginica模型操作点。

情节函数显示一个实心圆模型操作点的每个类,和传说显示类名和AUC值曲线。你可以找到最优操作点通过使用存储在属性rocmetrics对象rocObj。例如,看到的找到模型的操作点和最优操作点

加载示例数据。

负载fisheriris

列向量物种包含三个不同物种的虹膜花:setosa, virginica杂色的。双矩阵包含四种类型的测量在花:花萼长度,萼片宽,花瓣长度和花瓣宽度。所有的措施都在厘米。

只使用前两个特性预测变量。定义一个二元问题,只使用对应的测量多色的和virginica物种。

pred =量(51:结束,1:2);

定义二进制响应变量。

resp = (1:10 0) ' > 50;%多色的= 0,virginica = 1

符合逻辑回归模型。

mdl = fitglm (pred职责,“分布”,“二”,“链接”,分对数的);

计算真阳性率上的点态置信区间(TPR)垂直平均使用引导(VA)和抽样。

[X, Y, T] = perfcurve(物种(51:,:),mdl.Fitted.Probability,“virginica”,“NBoot”,1000,“XVals”[0:0.05:1]);

“NBoot”, 1000年引导复制的数量设置为1000。“XVals”、“所有”提示perfcurve返回X,Y,T所有分数值,平均的Y值(真阳性)X使用垂直平均值(假阳性)。如果你不指定XVals,然后perfcurve使用默认阈值平均计算置信界限。

绘制点态置信区间。

errorbar (X, Y (: 1), Y (: 1) - Y (:, 2), Y (:, 3) - Y (: 1));xlim ([-0.02, 1.02]);ylim ([-0.02, 1.02]);包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线与逐点的置信界限”)传说(“PCBwVA”,“位置”,“最佳”)

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线点态置信界限),包含假阳性,ylabel真阳性率包含一个errorbar类型的对象。该对象代表PCBwVA。

它可能并不总是可能的控制(玻璃钢,假阳性X值在这个例子)。所以你可能会想真阳性利率计算点态置信区间(TPR)阈值平均。

(X1, Y1, T1) = perfcurve(物种(51:,:),mdl.Fitted.Probability,“virginica”,“NBoot”,1000);

如果你设置“TVals”“所有”如果你不指定,或“TVals”“Xvals”,然后perfcurve返回X,Y,T所有分数和计算点态置信界限值XY使用阈值平均。

情节的信心。

图()errorbar (X1 (: 1), Y1(: 1),日元(:1)日元(:,2),日元(:,3)日元(:1));xlim ([-0.02, 1.02]);ylim ([-0.02, 1.02]);包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线与逐点的置信界限”)传说(“PCBwTA”,“位置”,“最佳”)

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线点态置信界限),包含假阳性,ylabel真阳性率包含一个errorbar类型的对象。该对象代表PCBwTA。

指定阈值来修正和计算ROC曲线。然后绘制曲线。

(X1, Y1, T1) = perfcurve(物种(51:,:),mdl.Fitted.Probability,“virginica”,“NBoot”,1000,“TVals”,0:0.05:1);图()errorbar (X1 (: 1), Y1(: 1),日元(:1)日元(:,2),日元(:,3)日元(:1));xlim ([-0.02, 1.02]);ylim ([-0.02, 1.02]);包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线与逐点的置信界限”)传说(“PCBwTA”,“位置”,“最佳”)

图包含一个坐标轴对象。坐标轴对象与标题ROC曲线点态置信界限),包含假阳性,ylabel真阳性率包含一个errorbar类型的对象。该对象代表PCBwTA。

输入参数

全部折叠

真正的类标签,指定为一个数值向量,逻辑向量,字符矩阵,字符串数组,数组单元阵列特征向量,或直言。有关更多信息,请参见分组变量

例子:{“嗨”,“中”,“你好”,“低”,…,“中期”}

例子:[' H ', ' M ', ' H ', ' L ',…,“M”)

数据类型:||逻辑|字符|字符串|细胞|分类

分数返回的分类器对于一些示例数据,指定为一个向量的浮动点。分数必须有相同数量的元素标签

数据类型:|

积极的类标签,指定为数字标量,逻辑标量,特征向量,字符串标量,细胞包含一个特征向量,或直言标量。积极的类必须输入标签的一员。的价值posclass你可以指定的值取决于标签

标签价值 posclass价值
数值向量 数字标量
逻辑向量 逻辑标量
字符矩阵 特征向量
字符串数组 字符串标量
单元阵列的特征向量 向量或细胞包含字符向量
分类向量 绝对标量

例如,在一个癌症诊断的问题,如果一个恶性肿瘤是积极的类,然后指定posclass作为“恶性”

数据类型:||逻辑|字符|字符串|细胞|分类

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“NegClass”、“癣”、“XCrit’,‘fn’,‘NBoot’, 1000年,“BootType”,“/”指定物种杂色的负类,的标准坐标为假阴性,引导1000样品的数量。它还指定边界计算使用百分位方法逐点的信心。

负类的列表,指定为逗号分隔组成的“NegClass”分类和数值数组,数组,字符串数组或单元阵列的特征向量。默认情况下,perfcurveNegClass“所有”并考虑负的所有类的输入数组中找到标签为负。

如果NegClass是类的一个子集的输入数组中找到标签,然后呢perfcurve丢弃的实例与标签不属于或正面或负面的类。

例子:NegClass,{“癣”、“setosa”}

数据类型:||分类|字符|字符串|细胞

标准来计算的X,指定为逗号分隔两人组成的“XCrit”和一个以下。

标准 描述
tp 真正的正面实例的数量。
fn 假阴性的实例。
《外交政策》 假阳性的数量的实例。
tn 真阴性实例的数量。
tp + fp 真阳性和假阳性实例。
齿槽 积极的预测。
齿槽= (tp + fp) / (tp + fn + fp + tn)
rnp 率的负面预测。
rnp = (tn + fn) / (tp + fn + fp + tn)
所以他们的 准确性。
所以= (tp + tn) / (tp + fn + fp + tn)
tpr,或sens,或reca 真阳性,或敏感性,或回忆。
tpr = sens = reca = tp / (tp + fn)
fnr,或小姐 假阴性率,或错过。
fnr = = fn /小姐(tp + fn)
玻璃钢,或秋天 假阳性,或影响,或1 -特异性。
玻璃钢= = fp /下降(tn + fp)
tnr,或规范 真阴性率或特异性。
tnr规范= = tn / (tn + fp)
ppv,或前的 阳性预测值、精度。
ppv = prec = tp / (tp + fp)
净现值 消极的预测价值。
净现值= tn / (tn + fn)
ecost 预期成本。
ecost = (tp *成本(P | P) + fn *成本(N | P) + fp *成本(P | N) + tn *成本(N | N)) / (tp + fn + fp + tn)
自定义标准 一个自定义函数的输入参数(C、规模、成本),在那里C是一个2×2混淆矩阵,规模是一个2×1组类尺度,成本是一个2×2的误分类代价矩阵。

谨慎

这些标准的一些回报值的两个特殊的阈值,拒绝所有的接受所有的

例子:“XCrit”、“ecost”

标准来计算的Y,指定为逗号分隔两人组成的“YCrit”和相同的标准选项之一X。这一标准不需要一个单调函数的积极类分数。

例子:“YCrit”、“ecost”

的值X标准,指定为逗号分隔组成的“XVals”和一个数字数组。

  • 如果您指定XVals,然后perfcurve计算XY逐点的置信界限Y只有指定的(适用时)XVals

  • 如果你不指定XVals,然后perfcurve,计算XY和默认值为所有分数。

请注意

你不能设置XValsTVals在同一时间。

例子:“XVals”, [0:0.05:1]

数据类型:||字符|字符串

阈值为正类,指定为逗号分隔组成的“TVals”,要么“所有”或数字数组。

  • 如果TVals被设置为“所有”或未指定XVals没有指定,那么perfcurve返回X,Y,T所有分数和计算值逐点的置信界限XY使用阈值平均。

  • 如果TVals设置为数值数组,那么perfcurve返回X,Y,T指定的阈值和计算点态置信界限值XY在这些使用阈值平均阈值。

请注意

你不能设置XValsTVals在同一时间。

例子:“TVals”, [0:0.05:1]

数据类型:||字符|字符串

指标使用最近的值的数据而不是指定的数值XValsTVals,指定为逗号分隔两人组成的“UseNearest”,要么“上”“关闭”

  • 如果指定的数字XVals并设置UseNearest“上”,然后perfcurve返回最近的独特X值的数据,并返回相应的值YT

  • 如果指定的数字XVals并设置UseNearest“关闭”,然后perfcurve返回排序XVals

  • 如果你计算置信界限)通过交叉验证或引导,那么这个参数总是“关闭”

例子:“UseNearest”,“关闭”

perfcurve方法进行处理分数,指定为逗号分隔组成的“ProcessNaN”“忽略”“addtofalse”

  • 如果ProcessNaN“忽略”,然后perfcurve删除的观察与分数从数据。

  • 如果ProcessNaN“addtofalse”,然后perfcurve增加了与实例各自的班上成绩错误分类计数。也就是说,perfcurve总是计算实例从正类假阴性(FN),和它总是重要的实例从负类假阳性(FP)。

例子:“ProcessNaN”、“addtofalse”

先验概率对积极和消极类,指定为逗号分隔组成的“之前”“经验”,“统一”,或者有两个元素的数组。

如果之前“经验”,然后perfcurve先验概率来自类频率。

如果之前“统一”,然后perfcurve集所有先验概率是相等的。

例子:“之前”,[0.3,0.7]

数据类型:||字符|字符串

误分类代价,指定为逗号分隔组成的“成本”和一个2×2的矩阵,包含(成本(P | P)、成本(N | P);成本(P | N)、成本(N | N))

成本(N | P)是分类的成本正类作为负类。成本(P | N)分类的成本是负类作为正类。通常情况下,成本(P |)= 0和成本(N |)= 0,但perfcurve允许您指定非零成本的正确分类。

例子:“成本”,[0 0.7;0.3 0]

数据类型:|

显著性水平的信心,指定为逗号分隔组成的“α”和一个标量值范围在0到1。perfcurve计算100 * (1 -α百分比)逐点的置信界限X,Y,T,AUC1 -的信心水平α

例子:“阿尔法”,0.01指定99%置信界限。

数据类型:|

观察体重、指定为逗号分隔组成的“重量”和非负标量值的向量。这个向量必须尽可能多的元素分数标签做的。

如果分数标签在细胞数组和需要提供吗权重,重量必须在一个单元阵列。在这种情况下,每一个元素权重必须是一个数字矢量和尽可能多的元素对应的元素分数。例如,元素个数(重量{1})= =元素个数(分数{1})

perfcurve计算X,YT使用交叉验证或信心界限,它使用这些观察的重量而不是观察计数。

perfcurve使用引导计算置信界限,这样品NN观察与更换,使用这些权重是多项抽样概率。

默认是1 s的向量或一个细胞数组的每个元素是一个矢量。

数据类型:||细胞

引导副本数量计算置信界限),指定为逗号分隔组成的“NBoot”和一个正整数。默认值0表示信心界限不计算。

如果标签分数是细胞阵列,该参数必须是0,因为perfcurve可以使用交叉验证或引导计算边界的信心。

例子:“NBoot”, 500年

数据类型:|

置信区间类型bootci使用计算置信区间,指定为逗号分隔组成的“BootType”和下列之一:

  • “bca”——偏差纠正和加速百分位法

  • 的规范“正常”——正常近似区间引导偏差和标准误差

  • “每”“百分比”-百分位方法

  • “cpe”“纠正百分位”——偏差纠正百分位方法

  • “学生”“学生”——Studentized置信区间

例子:“BootType”、“cpe”

可选的输入参数为bootci计算置信界限),指定为逗号分隔组成的“BootArg”{Nbootstd, Nbootstd}

当你计算studentized引导置信区间(“BootType”“学生”),你可以另外指定“Nbootstd”名称-值对的观点bootci通过使用“BootArg”。例如,BootArg, {Nbootstd, Nbootstd}估计的标准误差用引导引导统计数据nbootstd数据样本。nbootstd是一个正整数,默认是100。

例子:BootArg, {Nbootstd, Nbootstd}

数据类型:细胞

选项控制计算置信区间,指定为逗号分隔组成的“选项”和一个结构数组返回statset。这些选项需要并行计算工具箱™。perfcurve使用这个参数仅供计算边界点态信心。计算这些界限,你必须通过细胞阵列标签分数或一组NBoot一个正整数。

这个表总结了可用的选项。

选项 描述
“UseParallel”
  • ——串行计算(默认)。

  • 真正的——并行计算。你需要并行计算工具箱选择工作。

“UseSubstreams”
  • ——不使用一个单独的substream为每个迭代(默认)。

  • 真正的——使用一个单独的substream为每个迭代并行计算可再生的方式。计算重复性良好一种允许substreams:“mlfg6331_64”“mrg32k3a”

“流”

一个RandStream这样的对象的对象,或一个单元阵列。如果您指定,使用一个对象,除非:

  • UseParallel真正的

  • UseSubstreams

在这种情况下,使用一个相同大小的单元阵列作为平行池。如果不开放、平行池必须提供一个随机数流。

如果“UseParallel”真正的“UseSubstreams”,然后的长度“流”必须等于工人所使用的数量perfcurve。如果平行池已经打开,那么的长度“流”是平行的池的大小。如果一个平行池不是已经打开,然后用MATLAB®会为你打开一个池,根据您的安装和偏好。为了确保更可预测的结果,使用parpool(并行计算工具箱)和显式地创建一个并行调用前池perfcurve和设置“选项”,statset (UseParallel,真的)

例子:“选项”,statset (UseParallel,真的)

数据类型:结构体

输出参数

全部折叠

x性能曲线坐标,作为一个向量或返回3矩阵。默认情况下,X值的假阳性,玻璃钢(影响或1 -特异性)。改变X,可以使用XCrit名称-值对的论点。

  • 如果perfcurve不计算逐点的置信界限,或者如果它使用垂直平均,计算它们X是一个向量。

  • 如果perfcurve使用阈值平均计算置信界限,然后X是一个3矩阵,是固定阈值的数量值。第一列的X包含了平均值。第二和第三列包含下界和上界,分别点态的信心。

y性能曲线坐标,作为一个向量或返回3矩阵。默认情况下,Y值是真阳性的速率,TPR(召回或敏感性)。改变Y,使用YCrit名称-值对的论点。

  • 如果perfcurve不计算逐点的置信界限,然后Y是一个向量。

  • 如果perfcurve计算边界的信心Y是一个3矩阵,的数量是固定的吗X值或阈值(T值)。第一列的Y包含了平均值。第二和第三列包含下界和上界,分别点态的信心。

在分类器阈值分数的计算值XY,作为一个向量或返回3矩阵。

  • 如果perfcurve不计算逐点的置信界限,或者使用阈值平均,计算它们T是一个向量。

  • 如果perfcurve使用垂直平均计算置信界限,T是一个3矩阵,的数量是固定的吗X值。第一列的T包含了平均值。第二和第三列包含下限,上限,分别点态的信心。

对于每一个阈值,TP是真阳性的计数观察分数大于或等于阈值,然后呢《外交政策》是假阳性的计数观察得分大于或等于阈值。perfcurve定义-计数,TNFN以类似的方式。然后函数类型的阈值的降序排列对应于积极重要的升序排序。

不同的分数阈值数组中发现,perfcurve返回X,YT数组与+ 1行。perfcurve集元素T (2:+ 1)不同的阈值,T (1)复制T (2)。按照惯例,T (1)代表了最高拒绝所有的阈值,perfcurve计算相应的值XYTP = 0FP = 0。的T(结束)值是最低的接受所有的阈值的TN = 0FN = 0

曲线下的面积(AUC)的计算值XY,作为一个标量值或返回一个3×1向量。

  • 如果perfcurve不计算逐点的置信界限,AUC是一个标量值。

  • 如果perfcurve使用垂直平均计算置信界限,AUC是一个3×1向量。第一列的AUC包含了平均值。第二和第三列包含下界和上界,分别的信心。

为一个完美的分类器,AUC = 1。对于随机分配观察类的分类器,AUC = 0.5。

如果你设置XVals“所有”(默认)perfcurve计算AUC使用返回的XY值。

如果XVals是一个数值数组,然后呢perfcurve计算AUC使用XY所有不同的分数区间值,指定的最小的和最大的元素XVals。更准确地说,perfcurve发现X值好像所有不同的阈值XVals被设置为“所有”,然后使用这些(相应的一个子集Y值)之间分钟(XVals)马克斯(XVals)来计算AUC

perfcurve使用梯形近似估计区域。如果第一个或最后一个值XY年代,然后perfcurve删除他们允许的计算AUC。这需要照顾标准生产特殊的年代拒绝所有的接受所有的阈值,例如,阳性预测值(PPV)或阴性预测值(NPV)。

ROC曲线的最优操作点,作为1×2返回数组与假阳性率(玻璃钢)和真阳性率(TPR)值最优ROC操作点。

perfcurve计算OPTROCPTROC曲线为标准,集否则。获得的最优操作点ROC曲线,perfcurve第一次发现斜率,年代,使用

年代 = 成本 ( P | N ) 成本 ( N | N ) 成本 ( N | P ) 成本 ( P | P ) * N P

  • 成本(N|P)的成本分类正类作为负类。成本(P|N)分类的成本是负类作为正类。

  • P = TP + FNN = TN + FP。他们总在积极和消极类实例计数,分别。

perfcurve然后发现最优操作点通过移动的直线斜率年代中华民国情节(左上角的玻璃钢= 0,TPR = 1向右)下来,直到ROC曲线相交。

值-子类,作为一个数组返回。

  • 如果您指定只有一个负类SUBY是一样Y

  • 如果您指定k负类,然后SUBY是一个矩阵的大小——- - - - - -k,在那里返回值的数量吗XY,k是负类的数目。perfcurve计算Y值通过加法计数所有负类。

SUBY给出的值Y标准分别对每个负类。对于每一个消极的类,perfcurve一个新列在的地方SUBY并填满Y值为真阴性(TN)和假阳性(FP)统计这门课。

消极的类名,作为细胞返回数组。

  • 如果您提供一个输入负类名的数组NegClass,然后perfcurve名字复制到SUBYNAMES

  • 如果你不提供的NegClass,然后perfcurve提取SUBYNAMES从输入标签。的顺序SUBYNAMES列的顺序是一样的吗SUBY。也就是说,SUBY (: 1)是负类SUBYNAMES {1},SUBY (: 2)是负类SUBYNAMES {2},等等。

算法

全部折叠

逐点的置信界限

如果你提供细胞阵列标签分数,或者如果你设置NBoot一个正整数,然后perfcurve返回点态置信界限X,Y,T,AUC。你不能供应细胞阵列标签分数并设置NBoot同时一个正整数。

perfcurve重新取样数据计算置信界限使用交叉验证或引导。

  • 交叉验证——如果你供应细胞阵列标签分数,然后perfcurve使用交叉验证和对细胞数组中的元素作为交叉验证折叠。标签可以是一个数值向量的单元阵列、逻辑向量,字符矩阵,细胞阵列特征向量,或分类向量。所有的元素在标签必须具有相同的类型。分数可以是一个数值向量的单元阵列。的细胞数组标签分数必须有相同数量的元素。标签在细胞的数量j标签必须等于分数在细胞的数量j分数对于任何j范围从1到元素的数量分数

  • 引导——如果你设置NBoot将一个正整数n,perfcurve生成n引导副本计算边界点态信心。如果你使用XCritYCrit设置的标准XY一个匿名函数,perfcurve只能使用引导计算置信界限。

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

  • 垂直平均(VA)perfcurve估计置信界限YT以固定的值X。也就是说,perfcurve需要样品的固定的ROC曲线X值,平均对应YT值,计算标准错误。您可以使用XVals名称-值对参数来解决X值计算的信心。如果你不指定XVals,然后perfcurve计算边界的信心X值。

  • 阈值平均(TA)perfcurve需要样品的ROC曲线以固定阈值T积极类分数,平均对应XY值和估计的信心。您可以使用TVals名称-值对参数使用这种方法计算边界的信心。如果你设置TVals“所有”或不指定TValsXVals,然后perfcurve返回X,Y,T所有分数和计算点态置信界限值YX使用阈值平均。

当你计算置信界限),Y是一个3组,的数量是固定的吗X值或阈值(T值)。第一列的Y包含了平均值。第二和第三列包含下界和上界,分别点态的信心。AUC是一个行向量的三个要素,遵循同样的惯例。如果perfcurve使用VA计算置信界限,然后T是一个3矩阵,X是一个列向量。如果perfcurve使用助教,然后X是一个3矩阵和T是一个列向量。

perfcurve返回点态置信界限。它不返回一个乐队为整个曲线同时信心。

选择功能

  • 你可以计算ROC曲线的性能指标和其他性能曲线通过创建一个rocmetrics对象。rocmetrics万博1manbetx同时支持二进制和多类分类问题。你可以通过分类分数返回的预测函数的分类模型对象(如预测ClassificationTree)rocmetrics没有调整分数的多级模型。

    rocmetrics提供了对象函数绘制ROC曲线(情节),发现平均ROC曲线多类问题(平均),并计算额外的指标在创建一个对象(addMetrics)。更多细节,请参见页面和参考ROC曲线和性能指标

引用

[1]福西特,t .“ROC曲线图:笔记和实际问题研究”,机器学习31日。1 (2004):1-38。

[2]茨威格,M。,G. Campbell. “Receiver-Operating Characteristic (ROC) Plots: A Fundamental Evaluation Tool in Clinical Medicine.”临床化学39岁的没有。4 (1993):561 - 577。

[3]戴维斯,J。,M. Goadrich. “The Relationship Between Precision-Recall and ROC Curves.”ICML 06年学报》上,2006年,页233 - 240。

Moskowitz [4], c . S。和m . s .佩佩。“量化和比较连续的二进制的预后因素的预测精度的结果。”生物统计学5,不。1(2004):113 - 27所示。

[5],Y。,M. S. Pepe, and Z. Feng. “Evaluating the Predictiveness of a Continuous Marker.”美国华盛顿生物统计学纸系列,2006,250 - 61。

[6]Briggs, w . M。,R. Zaretzki. “The Skill Plot: A Graphical Technique for Evaluating Continuous Diagnostic Tests.”生物识别技术64年,没有。1 (2008):250 - 256。

[7]押注,r .厂商“分类器选择使用ROC凸包方法。”SAS研究所,2003年。

扩展功能

版本历史

介绍了R2009a

全部展开