perfcurve
接受者操作特征(ROC)曲线或其他分类器输出性能曲线
语法
描述
例子
绘制ROC曲线分类Logistic回归
加载示例数据。
负载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 (“真阳性率”)标题(“中华民国的分类逻辑回归”)
另外,您可以通过创建一个计算和绘制ROC曲线rocmetrics
对象和使用对象的功能情节
。
rocObj = rocmetrics(物种(51:,:),分数,“virginica”);情节(rocObj)
的情节
函数显示一个实心圆模型操作点,传说显示类名和AUC值曲线。
比较分类方法使用ROC曲线
加载示例数据。
负载电离层
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值更高的门槛,逻辑回归通常更善于区分不好雷达的回报。朴素贝叶斯的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分类器使用自定义内核。
分类树的绘制ROC曲线
加载示例数据。
负载fisheriris
列向量,物种
三个不同的种类,包括虹膜花:setosa, virginica杂色的。双矩阵量
包含四种类型的测量在花:花萼长度,萼片宽,花瓣长度和花瓣宽度。所有的措施都在厘米。
训练一个分类树使用花萼长度和宽度作为预测变量。这是一个很好的练习来指定类名。
模型= fitctree(量(:,1:2),物种,…“类名”,{“setosa”,“多色的”,“virginica”});
预测类标签和分数基于树的物种模型
。
[~,分数]= resubPredict(模型);
分数是一个观察的后验概率(中的一行数据矩阵)属于一个类。的列分数
对应于指定的类“类名”
。所以,第一列对应于setosa,第二个对应于多色的,第三列对应于virginica。
计算的预测的ROC曲线观察属于杂色的,考虑到真正的类标签物种
。计算最优操作点和y值为负的子类。返回负类的名称。
因为这是一个多类问题,你不能仅仅供应(得分:2)
作为输入,perfcurve
。这样做不会给perfcurve
足够的信息两个负类的分数(setosa和virginica)。这个问题是与二元分类问题,知道一个类的成绩足以确定其他类的分数。因此,您必须供应perfcurve
与功能因素的得分两个负类。一个这样的函数是
,对应于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曲线分类的分类树”)举行从
找到对应的阈值的最优操作点。
T ((X = = OPTROCPT (1) & (Y = = OPTROCPT (2)))
ans = 0.2857
指定virginica
负类,计算和绘制ROC曲线多色的
。
同样的,你必须提供perfcurve
与功能因素分数负类的。使用一个函数的一个例子
。
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曲线分类的分类树”)举行从
或者,您可以使用一个rocmetrics
对象创建ROC曲线。rocmetrics
万博1manbetx使用one-versus-all编码设计,支持多类分类问题,减少了多类问题为一组二元问题。您可以检查性能的多级问题每个类为每个类策划one-versus-all ROC曲线。
计算性能指标通过创建一个rocmetrics
对象。指定正确的标签,分类分数,和类名。
rocObj = rocmetrics(物种,分数,Model.ClassNames);
情节为每个类通过使用ROC曲线情节
的函数rocmetrics
。
图绘制(rocObj)
的情节
函数显示一个实心圆模型操作点的每个类,和传说显示类名和AUC值曲线。你可以找到最优操作点通过使用存储在属性rocmetrics
对象rocObj
。例如,看到的找到模型的操作点和最优操作点。
ROC曲线计算逐点的置信区间
加载示例数据。
负载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”,“位置”,“最佳”)
它可能并不总是可能的控制(玻璃钢,假阳性X
值在这个例子)。所以你可能会想真阳性利率计算点态置信区间(TPR)阈值平均。
(X1, Y1, T1) = perfcurve(物种(51:,:),mdl.Fitted.Probability,…“virginica”,“NBoot”,1000);
如果你设置“TVals”
来“所有”
如果你不指定,或“TVals”
或“Xvals”
,然后perfcurve
返回X
,Y
,T
所有分数和计算点态置信界限值X
和Y
使用阈值平均。
情节的信心。
图()errorbar (X1 (: 1), Y1(: 1),日元(:1)日元(:,2),日元(:,3)日元(:1));xlim ([-0.02, 1.02]);ylim ([-0.02, 1.02]);包含(的假阳性率)ylabel (“真阳性率”)标题(“ROC曲线与逐点的置信界限”)传说(“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”,“位置”,“最佳”)
输入参数
标签
- - - - - -真正的类标签
数值向量|逻辑向量|字符矩阵|字符串数组|单元阵列的特征向量|分类数组
真正的类标签,指定为一个数值向量,逻辑向量,字符矩阵,字符串数组,数组单元阵列特征向量,或直言。有关更多信息,请参见分组变量。
例子:{“嗨”,“中”,“你好”,“低”,…,“中期”}
例子:[' H ', ' M ', ' H ', ' L ',…,“M”)
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
分数
- - - - - -分数返回的分类器
向量的点
分数返回的分类器对于一些示例数据,指定为一个向量的浮动点。分数
必须有相同数量的元素标签
。
数据类型:单
|双
posclass
- - - - - -积极的类标签
数字标量|逻辑标量|特征向量|字符串标量|细胞包含一个特征向量|绝对标量
积极的类标签,指定为数字标量,逻辑标量,特征向量,字符串标量,细胞包含一个特征向量,或直言标量。积极的类必须输入标签的一员。的价值posclass
你可以指定的值取决于标签
。
标签 价值 |
posclass 价值 |
---|---|
数值向量 | 数字标量 |
逻辑向量 | 逻辑标量 |
字符矩阵 | 特征向量 |
字符串数组 | 字符串标量 |
单元阵列的特征向量 | 向量或细胞包含字符向量 |
分类向量 | 绝对标量 |
例如,在一个癌症诊断的问题,如果一个恶性肿瘤是积极的类,然后指定posclass
作为“恶性”
。
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“NegClass”、“癣”、“XCrit’,‘fn’,‘NBoot’, 1000年,“BootType”,“/”
指定物种杂色的负类,的标准坐标为假阴性,引导1000样品的数量。它还指定边界计算使用百分位方法逐点的信心。
NegClass
- - - - - -负类列表
“所有”
(默认)|数字数组|分类数组|字符串数组|单元阵列的特征向量
负类的列表,指定为逗号分隔组成的“NegClass”
分类和数值数组,数组,字符串数组或单元阵列的特征向量。默认情况下,perfcurve
集NegClass
来“所有”
并考虑负的所有类的输入数组中找到标签为负。
如果NegClass
是类的一个子集的输入数组中找到标签,然后呢perfcurve
丢弃的实例与标签不属于或正面或负面的类。
例子:NegClass,{“癣”、“setosa”}
数据类型:单
|双
|分类
|字符
|字符串
|细胞
XCrit
- - - - - -标准来计算的X
“玻璃钢”
(默认)|“fnr”
|“tnr”
|ppv的
|“ecost”
|……
标准来计算的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”
ProcessNaN
- - - - - -perfcurve
方法进行处理南
分数
“忽略”
(默认)|“addtofalse”
perfcurve
方法进行处理南
分数,指定为逗号分隔组成的“ProcessNaN”
和“忽略”
或“addtofalse”
。
如果
ProcessNaN
是“忽略”
,然后perfcurve
删除的观察与南
分数从数据。如果
ProcessNaN
是“addtofalse”
,然后perfcurve
增加了与实例南
各自的班上成绩错误分类计数。也就是说,perfcurve
总是计算实例从正类假阴性(FN),和它总是重要的实例从负类假阳性(FP)。
例子:“ProcessNaN”、“addtofalse”
之前
- - - - - -积极和消极类的先验概率
“经验”
(默认)|“统一”
|与两个元素数组
先验概率对积极和消极类,指定为逗号分隔组成的“之前”
和“经验”
,“统一”
,或者有两个元素的数组。
如果之前
是“经验”
,然后perfcurve
先验概率来自类频率。
如果之前
是“统一”
,然后perfcurve
集所有先验概率是相等的。
例子:“之前”,[0.3,0.7]
数据类型:单
|双
|字符
|字符串
成本
- - - - - -误分类代价
(0 1;1 0)
(默认)|2×2矩阵
误分类代价,指定为逗号分隔组成的“成本”
和一个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]
数据类型:单
|双
权重
- - - - - -观察权重
负的标量值的向量|单元阵列负的标量值的向量
BootType
- - - - - -置信区间类型bootci
“bca”
(默认)|的规范
|“每”
|“cpe”
|“学生”
置信区间类型bootci
使用计算置信区间,指定为逗号分隔组成的“BootType”
和下列之一:
“bca”
——偏差纠正和加速百分位法的规范
或“正常”
——正常近似区间引导偏差和标准误差“每”
或“百分比”
-百分位方法“cpe”
或“纠正百分位”
——偏差纠正百分位方法“学生”
或“学生”
——Studentized置信区间
例子:“BootType”、“cpe”
BootArg
- - - - - -可选的输入参数为bootci
[](默认)|{Nbootstd, Nbootstd}
可选的输入参数为bootci
计算置信界限),指定为逗号分隔组成的“BootArg”
和{Nbootstd, Nbootstd}
。
当你计算studentized引导置信区间(“BootType”
是“学生”
),你可以另外指定“Nbootstd”
名称-值对的观点bootci
通过使用“BootArg”
。例如,BootArg, {Nbootstd, Nbootstd}
估计的标准误差用引导引导统计数据nbootstd
数据样本。nbootstd
是一个正整数,默认是100。
例子:BootArg, {Nbootstd, Nbootstd}
数据类型:细胞
选项
- - - - - -选择控制计算置信区间
[]
(默认)|结构数组返回statset
选项控制计算置信区间,指定为逗号分隔组成的“选项”
和一个结构数组返回statset
。这些选项需要并行计算工具箱™。perfcurve
使用这个参数仅供计算边界点态信心。计算这些界限,你必须通过细胞阵列标签
和分数
或一组NBoot
一个正整数。
这个表总结了可用的选项。
选项 | 描述 |
---|---|
“UseParallel” |
|
“UseSubstreams” |
|
“流” |
一个
在这种情况下,使用一个相同大小的单元阵列作为平行池。如果不开放、平行池 |
如果“UseParallel”
是真正的
和“UseSubstreams”
是假
,然后的长度“流”
必须等于工人所使用的数量perfcurve
。如果平行池已经打开,那么的长度“流”
是平行的池的大小。如果一个平行池不是已经打开,然后用MATLAB®会为你打开一个池,根据您的安装和偏好。为了确保更可预测的结果,使用parpool
(并行计算工具箱)和显式地创建一个并行调用前池perfcurve
和设置“选项”,statset (UseParallel,真的)
。
例子:“选项”,statset (UseParallel,真的)
数据类型:结构体
输出参数
T
——阈值分类器的分数
向量|米3矩阵
在分类器阈值分数的计算值X
和Y
,作为一个向量或返回米3矩阵。
如果
perfcurve
不计算逐点的置信界限,或者使用阈值平均,计算它们T
是一个向量。如果
perfcurve
使用垂直平均计算置信界限,T
是一个米3矩阵,米的数量是固定的吗X
值。第一列的T
包含了平均值。第二和第三列包含下限,上限,分别点态的信心。
对于每一个阈值,TP
是真阳性的计数观察分数大于或等于阈值,然后呢《外交政策》
是假阳性的计数观察得分大于或等于阈值。perfcurve
定义-计数,TN
和FN
以类似的方式。然后函数类型的阈值的降序排列对应于积极重要的升序排序。
为米不同的分数阈值数组中发现,perfcurve
返回X
,Y
和T
数组与米+ 1行。perfcurve
集元素T (2:米+ 1)
不同的阈值,T (1)
复制T (2)
。按照惯例,T (1)
代表了最高拒绝所有的
阈值,perfcurve
计算相应的值X
和Y
为TP = 0
和FP = 0
。的T(结束)
值是最低的接受所有的
阈值的TN = 0
和FN = 0
。
AUC
曲线下的面积
标量值| 3×1的向量
曲线下的面积(AUC
)的计算值X
和Y
,作为一个标量值或返回一个3×1向量。
如果
perfcurve
不计算逐点的置信界限,AUC
是一个标量值。如果
perfcurve
使用垂直平均计算置信界限,AUC
是一个3×1向量。第一列的AUC
包含了平均值。第二和第三列包含下界和上界,分别的信心。
为一个完美的分类器,AUC = 1。对于随机分配观察类的分类器,AUC = 0.5。
如果你设置XVals
来“所有”
(默认)perfcurve
计算AUC
使用返回的X
和Y
值。
如果XVals
是一个数值数组,然后呢perfcurve
计算AUC
使用X
和Y
所有不同的分数区间值,指定的最小的和最大的元素XVals
。更准确地说,perfcurve
发现X
值好像所有不同的阈值XVals
被设置为“所有”
,然后使用这些(相应的一个子集Y
值)之间分钟(XVals)
和马克斯(XVals)
来计算AUC
。
perfcurve
使用梯形近似估计区域。如果第一个或最后一个值X
或Y
是南
年代,然后perfcurve
删除他们允许的计算AUC
。这需要照顾标准生产南
特殊的年代拒绝所有的
或接受所有的
阈值,例如,阳性预测值(PPV)或阴性预测值(NPV)。
OPTROCPT
-最优操作点的ROC曲线
1×2数组
ROC曲线的最优操作点,作为1×2返回数组与假阳性率(玻璃钢)和真阳性率(TPR)值最优ROC操作点。
perfcurve
计算OPTROCPT
ROC曲线为标准,集南
否则。获得的最优操作点ROC曲线,perfcurve
第一次发现斜率,年代,使用
成本(N|P)的成本分类正类作为负类。成本(P|N)分类的成本是负类作为正类。
P = TP + FN和N = TN + FP。他们总在积极和消极类实例计数,分别。
perfcurve
然后发现最优操作点通过移动的直线斜率年代中华民国情节(左上角的玻璃钢= 0
,TPR = 1
向右)下来,直到ROC曲线相交。
算法
逐点的置信界限
如果你提供细胞阵列标签
和分数
,或者如果你设置NBoot
一个正整数,然后perfcurve
返回点态置信界限X
,Y
,T
,AUC
。你不能供应细胞阵列标签
和分数
并设置NBoot
同时一个正整数。
perfcurve
重新取样数据计算置信界限使用交叉验证或引导。
交叉验证——如果你供应细胞阵列
标签
和分数
,然后perfcurve
使用交叉验证和对细胞数组中的元素作为交叉验证折叠。标签
可以是一个数值向量的单元阵列、逻辑向量,字符矩阵,细胞阵列特征向量,或分类向量。所有的元素在标签
必须具有相同的类型。分数
可以是一个数值向量的单元阵列。的细胞数组标签
和分数
必须有相同数量的元素。标签在细胞的数量j的标签
必须等于分数在细胞的数量j的分数
对于任何j范围从1到元素的数量分数
。引导——如果你设置
NBoot
将一个正整数n,perfcurve
生成n引导副本计算边界点态信心。如果你使用XCrit
或YCrit
设置的标准X
或Y
一个匿名函数,perfcurve
只能使用引导计算置信界限。
perfcurve
估计,置信界限使用两种方法之一:
当你计算置信界限),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年。
扩展功能
自动并行支持万博1manbetx
加速代码通过自动运行并行计算使用并行计算工具箱™。
并行运行,指定选项
名称-值参数在调用这个函数,设置UseParallel
选择结构领域真正的
使用statset
:
“选项”,statset (“UseParallel”,真的)
关于并行计算的更多信息,请参阅MATLAB函数自动并行支持运行万博1manbetx(并行计算工具箱)。
版本历史
介绍了R2009aR2022a:默认的成本
值已经改变了
从R2022a开始,默认值为成本
名称-值参数是[0 1;1 0]
一样,这是默认的误分类代价矩阵值的新功能rocmetrics
和分类器训练功能,如fitcsvm
,fitctree
,等等。在以前的版本中,默认成本
值是[0 0.5;0.5 0]
。
如果你指定XCrit
或YCrit
名称-值参数为“ecost”
(预期成本)和使用默认值成本
值,函数返回值在输出参数X
或Y
在以前版本相比翻了一倍的值。
如果你指定XCrit
或YCrit
名称-值作为自定义指标和使用默认参数成本
值,相应的输出参数值可以不同取决于自定义指标使用成本矩阵。
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。