主要内容

灌注

接收器操作特性(ROC)曲线或分类器输出的其他性能曲线

描述

例子

XY) = perfcurve (标签分数posclass返回XY分类器预测向量的ROC曲线坐标,分数,给定真正的类标签,标签,和正向类别标签,posclass.您可以使用以下命令来可视化性能曲线情节(X, Y)

XYT) = perfcurve (标签分数posclass返回计算值的分类器分数的阈值数组XY

例子

XYTAUC) = perfcurve (标签分数posclass的计算值在曲线下的面积XY

例子

XYTAUCOPTROCPT) = perfcurve (标签分数posclass返回ROC曲线的最佳工作点。

XYTAUCOPTROCPTSUBY) = perfcurve (标签分数posclass返回Y负子类的值。

例子

XYTAUCOPTROCPTSUBYSUBYNAMES) = perfcurve (标签分数posclass返回负类名。

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

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

例子

全部收缩

加载示例数据。

加载fisheriris

只使用前两个特性作为预测变量。定义一个二元分类问题,仅使用与品种versicolor和virginica对应的测量值。

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

定义二进制响应变量。

resp =(1:100)'> 50;% vericcolor = 0, virginica = 1

拟合逻辑回归模型。

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

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

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

灌注存储数组中的阈值T

显示曲线下的面积。

AUC
AUC = 0.7918

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

绘制ROC曲线。

情节(X, Y)包含(的假阳性率) ylabel ('真正的阳性率')标题(“ROC的分类Logistic回归”

图中包含一个坐标轴。以ROC为标题进行Logistic回归分类的坐标轴包含一个类型线对象。

加载示例数据。

加载电离层

X是一个351x34的预测值实值矩阵。Y是类标签的字符数组:“b”因为雷达信号不好‘g’良好的雷达返回。

重新格式化响应以适应逻辑回归。使用预测变量3到34。

resp = strcmp (Y,“b”);% rep = 1,如果Y = 'b',如果Y = 'g',则返回0pred = X (: 34);

拟合逻辑回归模型来估计雷达返回差的后验概率。

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

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

[xlog,ylog,tlog,auclog] = perfcurve(resp,score_log,“真正的”);

在同一样本数据上训练SVM分类器。标准化数据。

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(resp,score_nb(:,mdlnb.classnames),“真正的”);

在同一个图上绘制ROC曲线。

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

图中包含一个坐标轴。以ROC曲线为标题的Logistic回归、支持向量机和朴素贝叶斯分类的坐标轴包含3个类型为直线的对象。这些对象代表Logistic回归,支持向量机,朴素贝叶斯。万博1manbetx

尽管SVM更高的门槛产生更好的ROC值,回归平常更好地区别于好的坏的雷达回波是。对于朴素贝叶斯ROC曲线是通常比其他两个ROC曲线,其指示样品中的性能比其它两种分类方法更差低。

比较所有三个分类器的曲线下的区域。

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

Logistic回归的AUC值最高,朴素贝叶斯的AUC值最低。这一结果表明,logistic回归对该样本数据具有更好的样本内平均性能。

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

在单位圆内生成一组随机点。

rng (1);重复性的%n = 100;%每象限的点数r1 =√兰特(2 * n, 1));%随机半径t1 =[π/ 2 *兰德(n, 1);(π/ 2 *兰德(n - 1) +π)];% Q1和Q3的随机角度X1 = [r1.*cos(t1) r1.*sin(t1)];% Polar-to-Cartesian转换r2 =√兰特(2 * n, 1));t2 =[π/ 2 *兰德(n, 1) +π/ 2;(π/ 2 *兰德(n, 1) -π/ 2)];%随机的角度为Q2和Q4X2 = [R2 * COS(T2)R2 * SIN(T2)。。];

定义预测变量。在第一和第三象限的标记点属于正类,而在第二和第四象限的标记点属于负类。

pred = [X1;X2);resp = 1 (4 * n, 1);rep (2*n + 1:end) = -1; / /结束%的标签

创建函数mysigmoid.m,它接受特征空间中的两个矩阵作为输入,并使用s形核将其转换为Gram矩阵。

函数G = mysigmoid (U, V)斜率伽马和拦截c%sigmoid内核函数γ= 1;c = 1;n = U*V' + c;结束

使用s形核函数训练SVM分类器。将数据标准化是一个很好的做法。

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

伽马= 0.5;之内mysigmoid.m并保存为mysigmoid2.m.并使用调整后的s形核训练SVM分类器。

函数G = mysigmoid2(U,V)斜率伽马和拦截c%sigmoid内核函数伽马= 0.5;c = 1;n = U*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'“位置”“本身”);Xlabel(的假阳性率);ylabel ('真正的阳性率');标题('通过SVM进行分类的ROC');

使用伽马参数设置为0.5的内核函数提供更好的样本结果。

比较AUC措施。

auc1 auc2
Auc1 = 0.9518 auc2 = 0.9985

gamma设置为0.5的曲线下面积比gamma设置为1的曲线下面积高。这也证实了gamma参数值为0.5会产生更好的结果。对于这两个gamma参数值的分类性能的视觉比较,请参见使用自定义内核列车SVM分类器

加载示例数据。

加载fisheriris

列向量,物种,由三种不同种类的鸢尾花组成:蔷薇花(setosa)、花斑花(versicolor)、小virginia。双矩阵测定由花上的四种测量值组成:萼片长度,萼片宽度,花瓣长度和花瓣宽度。所有测量单位都是厘米。

以萼片长度和宽度作为预测变量,训练分类树。指定类名是一个很好的实践。

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

根据树预测物种的类标签和分数模型

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

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

给定真实的类别标签,计算观测属于versicolor的预测的ROC曲线物种.也计算最佳工作点和y负子类的值。返回负类的名称。

因为这是一个多字符问题,你不能仅仅是供应(得分:2)作为输入,灌注.这样做不会放弃灌注关于两个负类(setosa和virginica)的分数的足够信息。这个问题不像二元分类问题,在二元分类中,知道一个类的分数就足以决定另一个类的分数。因此,你必须提供灌注这个函数将两个负类的分数考虑在内。其中一个函数是 年代 c o r e 2 - 最大限度 年代 c o r e 1 年代 c o r e 3.

diffscore =分数(:,2) - 最大(评分(:,1),评分(:,3));[X,Y,T,〜,OPTROCPT,suby,子名] = perfcurve(物种,diffscore,“多色的”);

X,默认为假阳性率(辐射或1-特异性)和Y,默认为真实阳性率(召回率或灵敏度)。正class的标签是多色的.因为负类没有定义,灌注假设不属于正类的观察结果属于一类。函数接受它作为负类。

OPTROCPT
Optrocpt =1×20.1000 0.8000.
suby
suby =12×200 0.1800 0.1800 0.4800 0.4800 0.5800 0.5800 0.6200 0.8000 0.8000 0.8800 0.8800 0.9200 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),'ro')包含(的假阳性率) ylabel ('真正的阳性率')标题(“分类树分类的ROC曲线”)举行离开

图中包含一个坐标轴。以分类树分类ROC曲线为标题的坐标轴包含2个类型线对象。

找出与最佳工作点对应的阈值。

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

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

同样,你必须提供灌注与一个函数,在负类的得分因素。一个函数来使用的一个例子是 年代 c o r e 2 - 年代 c o r e 3.

Diffscore = score(:,2) - score(:,3);[X, Y, ~, ~, OPTROCPT] = perfcurve(物种,diffscore,“多色的”...“negClass”'virginica');OPTROCPT
Optrocpt =1×20.1800 - 0.8200
人物,情节(X, Y)情节(OPTROCPT (1) OPTROCPT (2),'ro')包含(的假阳性率) ylabel ('真正的阳性率')标题(“分类树分类的ROC曲线”)举行离开

图中包含一个坐标轴。以分类树分类ROC曲线为标题的坐标轴包含2个类型线对象。

加载示例数据。

加载fisheriris

列向量物种由三个不同品种的花菖蒲:setosa,云芝,弗吉尼亚。双矩阵测定由花上的四种测量值组成:萼片长度,萼片宽度,花瓣长度和花瓣宽度。所有测量单位都是厘米。

只使用前两个特性作为预测变量。定义一个二元问题,只使用对应于花斑和弗吉尼亚物种的测量值。

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

定义二进制响应变量。

resp =(1:100)'> 50;% vericcolor = 0, virginica = 1

拟合逻辑回归模型。

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

通过垂直平均(VA)和bootstrap抽样计算真阳性率(TPR)的点态置信区间。

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

“NBoot”,1000年将引导副本的数量设置为1000。“XVals”、“所有”提示灌注返回XY, 和T值的所有分数,并平均Y值(真阳性率)X值(假阳性率)使用垂直平均。如果没有指定XVals, 然后灌注默认情况下使用阈值平均计算置信边界。

绘制点态置信区间。

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

图中包含一个坐标轴。标题为ROC Curve with Pointwise Confidence Bounds的坐标轴包含一个类型为errorbar的对象。该对象表示PCBwVA。

可能并不总是能够控制假阳性率(FPR, theX在该示例中的值)。所以,你可能要计算的真阳性率(TPR)的门槛平均逐点置信区间。

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

如果你设置“TVals”“所有”,或者您没有指定“TVals”'Xvals', 然后灌注返回XY, 和T的值,并计算逐点置信边界XY使用阈值平均值。

画出置信限。

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

图中包含一个坐标轴。标题为ROC Curve with Pointwise Confidence Bounds的坐标轴包含一个类型为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]);Xlabel(的假阳性率) ylabel ('真正的阳性率')标题(“具有点态置信界限的ROC曲线”)传说(“PCBwTA”“位置”“最佳”

图中包含一个坐标轴。标题为ROC Curve with Pointwise Confidence Bounds的坐标轴包含一个类型为errorbar的对象。该节点表示PCBwTA。

输入参数

全部收缩

真正的类标签,指定为数字向量、逻辑向量、字符矩阵、字符串数组、字符向量的单元格数组或类别数组。有关更多信息,请参见分组变量

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

例子:['h','m','h','l',......,'m']

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

由分类器为一些样本数据返回的分数,指定为浮点向量。分数必须有相同数量的元素标签

数据类型:|

正类标号,指定为数字标量、逻辑标量、字符向量、字符串标量、包含字符向量的单元格或类别标量。正类必须是输入标签的成员。的价值posclass可以指定的值取决于标签

标签价值 posclass价值
数值向量 数字标量
逻辑矢量 逻辑标量
字符矩阵 特征向量
字符串数组 字符串标量
字符向量的单元格数组 字符向量或含有字符向量单元的
分类向量 绝对标量

例如,在一个癌症诊断问题中,如果恶性肿瘤是阳性的类别,则指定posclass作为“恶性”

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

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字是参数的名称和价值为对应值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'NegClass', '云芝', 'XCrit', 'FN', 'NBOOT',1000 'BootType', '每'指定物种versicolor为阴性类,x坐标标准为假阴性,bootstrap样本数量为1000。它还指定使用百分位数方法计算点态置信界限。

负类列表,指定为逗号分隔对,由“NegClass”,以及数字数组、类别数组、字符串数组或字符向量单元格数组。默认情况下,灌注NegClass'全部'并将标签输入数组中的所有非正数类视为负数。

如果NegClass是类的子集标签的输入阵列中找到,则灌注丢弃具有不属于正或负类的标签的实例。

例子:'negclass',{versicolor','setosa'}

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

计算准则X,指定为逗号分隔的配对组成“XCrit”下面是其中之一。

标准 描述
tp 真阳性实例的数量
FN 错误否定的实例数。
FP. 误报次数。
tn 真实否定的实例数。
tp + fp 真阳性和假阳性实例的总和。
齿槽 积极预测的比率。
齿槽= (tp + fp) / (tp + fn + fp + tn)
rnp 消极预测的比率。
rnp = (tn + fn) / (tp + fn + fp + tn)
所以他们的 准确性。
ACCU =(TP + TN)/(TP + FN + FP + TN)
tpr,或sens,或reca 真实阳性率、灵敏度或回忆率。
Tpr = sens = reca = tp/(tp+fn)
FNR,或错过 假阴性率,或误。
FNR = miss = fn/(tp+fn)
FPR.,或秋天 假阳性率,放射性沉降,或1 -特异性。
FPR = FALL = FP /(TN + FP)
tnr,或规范 真阴性率,或特异性。
TNR = spec = 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, 然后灌注计算XY逐点的置信界限为了Y(如适用)只适用于指定的人士XVals

  • 如果没有指定XVals, 然后灌注,计算XY以及所有分数的默认值。

笔记

你不能设置XValsTVals同时。

例子:'xvals',[0:0.05:1]

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

阈值对于正类得分,指定为逗号分隔的一对组成的“TVals”,要么'全部'或数字数组。

  • 如果TVals被设置为'全部'或未指定,XVals未指定,则灌注返回XY, 和T所有分数和计算的值逐点的置信界限为了XY使用阈值平均值。

  • 如果TVals设置为数字数组,那么灌注返回XY, 和T的值,并计算点态置信边界XY在这些阈值下使用阈值平均值。

笔记

你不能设置XValsTVals同时。

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

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

指示符使用数据中最接近的值而不是指定的数字XValsTVals,指定为逗号分隔的配对组成“UseNearest”,要么“上”“关闭”

  • 如果你指定数字XVals并设置Usenealest.“上”, 然后灌注返回最近的唯一X值在数据中找到,并且它返回的相应值YT

  • 如果你指定数字XVals并设置Usenealest.“关闭”, 然后灌注返回排序XVals

  • 如果您通过交叉验证或引导来计算置信界限,则此参数总是“关闭”

例子:'UseNearest', '断'

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

  • 如果processnan.“忽略”, 然后灌注删除的观察与从数据中得到分数。

  • 如果processnan.“addtofalse”, 然后灌注增加了与实例分数到错误分类计数在各自的类。也就是说,灌注总是将阳性类的实例计数为假阴性(FN),并且总是将阴性类的实例计数为假阳性(FP)。

例子:“ProcessNaN”、“addtofalse”

正负类的先验概率,指定为逗号分隔对,由“之前”“经验”“统一”,或两个元素的数组。

如果之前“经验”, 然后灌注从类频率导出先验概率。

如果之前“统一”, 然后灌注设置所有先验概率相等。

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

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

错误分类成本,指定为逗号分隔的配对组成'成本'和一个2 × 2矩阵,包含[费用(P | P),成本(N | P);成本(P | N),成本(N | N)]

成本(N | P)是将正类错分类为负类的代价。成本(P | N)是将负类误分类为正类的代价。通常情况下,成本(P |)= 0且成本(N |)= 0,但灌注允许您为正确分类指定非零成本。

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

数据类型:|

显着性水平为置信区间,指定为逗号分隔的一对组成的“α”标量的取值范围是0到1。灌注计算100 * (1 -α.百分比)逐点的置信界限为了XYT, 和AUC置信水平为1 -α.

例子:“阿尔法”,0.01指定99%置信范围

数据类型:|

观察权重,指定为逗号分隔的配对组成'重量'和一个非负标量值的向量。这个向量必须有和分数标签做。

如果分数标签是在细胞阵列,你需要供应吗权重,权重也必须在单元格数组中。在这种情况下,每个元素权重必须是一个数字向量,其元素个数与相应元素相同分数.例如,numel(权重{1})== numel(scores {1})

灌注计算XYT或者使用交叉验证的置信界限,它使用这些观察权重而不是观察计数。

灌注使用bootstrap计算置信度,它抽样NN用替换观察,使用这些重量作为多项式采样概率。

默认值是1S或单元数组的向量,其中每个元素是1s的向量。

数据类型:||细胞

用于计算置信边界的引导副本的数量,指定为由以下组成的逗号分隔对“NBoot”和一个正整数。默认值为0表示置信区间不计算。

如果标签分数是否单元格数组,此参数必须为0,因为灌注可以使用交叉验证或引导来计算置信范围。

例子:“NBoot”,500年

数据类型:|

置信区间类型bootci用于计算置信度界限,指定为逗号分隔的对组成“BootType”以及以下其中之一:

  • “bca”-偏差修正和加速百分位法

  • 的规范'普通的'-带引导偏差和标准误差的正常近似区间

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

  • “cpe”“纠正百分位”-偏差修正百分位数法

  • “根根”“学生”- 学生化的置信区间

例子:'BootType', 'CPER'

的可选输入参数bootci到计算置信区间,指定为逗号分隔的一对组成的“BootArg”{Nbootstd, Nbootstd}{ '标准错误',标准错误},名称 - 值对的参数bootci

当您计算已学习的引导置信区间(“BootType”“学生”),你还可以指定“Nbootstd”“Stderr”,名称 - 值对的参数bootci,通过使用“BootArg”

  • BootArg, {Nbootstd, Nbootstd}使用bootstrap with估计bootstrap统计的标准误差nbootstd.数据样本。nbootstd.是一个正整数,它的默认值是100。

  • BootArg, {Stderr, Stderr}通过用户定义的函数计算引导统计的标准错误stderr那需要(1:元素个数(分数)]作为输入参数。stderr是函数句柄。

例子:BootArg, {Nbootstd, Nbootstd}

数据类型:细胞

用于控制置信区间计算的选项,置信区间指定为逗号分隔对,由“选项”和返回的结构数组statset.这些选项需要并行计算工具箱™。灌注使用此参数计算仅逐点置信区间。为了计算这些界限,必须通过对电池阵列标签分数或一组nboot.变成一个正整数。

该表总结了可用的选项。

选项 描述
'使用指平行'
  • 错误的- 串行计算(默认)。

  • 真正的- 并行计算。您需要并行计算工具箱以获取此选项。

“UseSubstreams”
  • 错误的-不要为每个迭代使用单独的子流(默认)。

  • 真正的-对每个迭代使用独立的子流,以可复制的方式并行计算。若要重复计算,请设置溪流到允许子流的类型:“mlfg6331_64”“mrg32k3a”

“流”

一个RandStream对象,或此类对象的单元格数组。如果您指定溪流,使用单个对象,除非:

  • 使用指α.真正的

  • UseSubstreams错误的

在这种情况下,使用与并行池相同大小的单元格数组。如果并行池未打开,则溪流必须提供一个单一随机数流。

如果'使用指平行'真正的“UseSubstreams”错误的,然后是长度“流”必须等于所用工人的数量灌注.如果并行池已经打开,则“流”是平行池的大小。如果并行池尚未打开,则Matlab®可能会打开一个池您,根据您的安装和喜好。为了确保更可预见的结果,使用parpool(并行计算工具箱)并在调用之前显式地创建并行池灌注和设置“选项”,statset (UseParallel,真的)

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

数据类型:结构体

输出参数

全部收缩

x-性能曲线的坐标,返回为矢量或3矩阵。默认情况下,X值是假阳性率,FPR(辐射或1特异性)。改变X,可以使用XCrit名称-值对的论点。

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

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

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

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

  • 如果灌注然后计算置信限Y是一个3矩阵,数量是固定的吗X值或阈值(T价值观)。第一列Y包含平均值。第二列和第三列分别包含点态置信界的下界和上界。

的计算值对分类器分数的阈值XY,作为vector或返回3矩阵。

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

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

对于每一个阈值,TP是真正阳性观测的计数,得分大于或等于该阈值,以及《外交政策》为分数大于或等于该阈值的假阳性观察的计数。灌注定义-计数,TNFN,以类似的方式。然后,该函数按照正计数的升序对阈值进行降序排序。

在一系列分数中发现了不同的阈值,灌注返回XYT数组与+ 1行。灌注集元素T(2:+ 1)到不同的阈值T (1)复制T(2).按照惯例,T (1)代表了最高'拒绝全部'门槛,灌注计算对应的值XY为了TP = 0FP = 0.的T(结束)价值是最低的接受所有的阈值的TN = 0FN = 0

曲线下面积(AUC)对于计算的值XY,返回标量值或3乘1向量。

  • 如果灌注不计算逐点的置信界限AUC是标量值。

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

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

如果你设置XVals'全部'(默认),然后灌注计算AUC使用返回XY值。

如果XVals是一个数字数组吗灌注计算AUC使用XY的最小和最大元素指定的区间内所有不同分数的值XVals.更准确地说,灌注发现X值为所有不同的阈值XVals被设置为'全部',然后使用其中的一个子集(与相应的Y值)之间的分钟(XVals)马克斯(XVals)来计算AUC

灌注使用梯形近似来估计面积。的第一个或最后一个值XY年代,然后灌注删除它们以允许计算AUC.这需要照顾的标准产生S对于特殊'拒绝全部'接受所有的阈值,如阳性预测值(PPV)或阴性预测值(NPV)。

ROC曲线的最佳工作点,以1 × 2数组返回,其中包含最佳ROC工作点的假阳性率(FPR)和真阳性率(TPR)值。

灌注计算OPTROCPT对于标准的ROC曲线而已,而对套否则。为了获得ROC曲线的最佳工作点,灌注首先求斜率,年代,使用

年代 成本 P | N 成本 N | N 成本 N | P 成本 P | P * N P

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

  • P = tp + fnN = tn + fp.它们分别是正类和负类中的实例总数。

灌注然后通过直线带斜率的运动找到最优工作点年代从ROC图的左上角(玻璃钢= 0TPR = 1)向下和向右,直到它与ROC曲线相交。

作为数组返回的负子类的值。

  • 如果你只指定一个负类,那么SUBY与之相同Y

  • 如果您指定k消极类,那么SUBY矩阵的大小是多少-经过-k,在那里返回值的数量是多少XY, 和k是负类的数量。灌注计算Y通过在所有的负面班总结计数的值。

SUBY给出Y标准为每个负类分别。对于每个负类,灌注放置一个新列SUBY并填补它Y对于真阴性(TN)和假阳性(FP)的值计只是为了这个类。

负类名,作为单元格数组返回。

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

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

算法

全部收缩

逐点的置信界限

如果您为标签分数,或者如果你设置nboot.到一个正整数,则灌注返回尖端的置信范围XYT, 和AUC.不能为。提供单元格数组标签分数并设置nboot.同时变成一个正整数。

灌注使用任一交叉确认或引导数据重新采样到计算置信区间。

  • 交叉验证——如果您为标签分数, 然后灌注使用交叉验证,并将单元格数组中的元素视为交叉验证折叠。标签可以是数字向量、逻辑向量、字符矩阵、字符向量或类别向量的单元数组。所有的元素在标签必须具有相同的类型。分数可以是数值向量的单元格数组。的单元格数组标签分数必须有相同数目的元素。单元格中标签的数量j标签必须等于单元格中的分数数j分数对于任何j在1到元素的数量的范围内分数

  • 引导-如果你设置nboot.变成正整数n灌注生成nBootstrap副本计算尖端的置信范围。如果你使用XCritYCrit设定标准XY对于匿名函数,灌注只能使用引导来计算置信界限。

灌注使用两种方法之一估计置信度界限:

  • 垂直平均(VA) -灌注估计信心界限YT固定值X.也就是说,灌注采用ROC曲线的样品进行固定X值,取相应的平均值YT值,并计算标准误差。你可以使用XVals名称 - 值对参数来修复X计算置信界限的值。如果没有指定XVals, 然后灌注计算置信限X值。

  • 阈值平均(TA) -灌注固定阈值采集ROC曲线样本T对于正阶级分数,平均相应的XY值,并估计置信边界。你可以使用TVals名称-值对参数,使用此方法计算置信范围。如果你设置TVals'全部'或者不具体说明TValsXVals, 然后灌注返回XY, 和T的值,并计算逐点置信边界YX使用阈值平均值。

当你计算置信限时,Y是一个-by-3阵列,其中数量是固定的吗X值或阈值(T价值观)。第一列Y包含平均值。第二列和第三列分别包含点态置信界的下界和上界。AUC是具有三个元素的行向量,遵循相同的约定。如果灌注然后使用VA计算置信界限T是一个3矩阵,X是一列栏矢量。如果灌注使用ta,然后X是一个3矩阵和T是一个列向量。

灌注返回点置信界限。它不会返回整个曲线的同时置信带。

参考文献

[1] t·福塞特。“ROC图:对研究者的注释和实用考虑”,2004。

Zweig, M.和G. Campbell。受试者工作特征(ROC)图:临床医学的基本评价工具中国。化学.1993, 39/4, 561-577页。

[3] Davis, J.和M. Goadrich。精度查全率与ROC曲线的关系ICML '06论文集, 2006,第233-240页。

莫斯科维茨和佩佩。“量化和比较连续预后因素对二元预后的预测准确性。”生物统计学, 2004, 5,页113-127。

黄勇,M. Pepe,冯志峰。"评估连续标记的预测性"华盛顿生物统计学论文系列,2006,250-261。

[6]布里格斯,W.,和R. Zaretzki。“该技能情节:图形技术评估连续诊断测试。”生物识别技术, 2008, 63,页250 - 261。

[7] r .赌博。使用ROC凸包方法进行代价敏感分类器选择SAS研究所

扩展功能

在R2009A介绍