主要内容

classperf

评估分类器的性能

描述

classperf如果没有输入参数显示的属性classperformance对象。有关更多信息,请参见classperformance属性

例子

cp= classperf (groundTruth)创建一个空classperformance对象cp使用正确的标签groundTruth对于每一个观测数据集。

cp= classperf (groundTruth,classifierOutput)创建一个classperformance对象cp使用正确的标签groundTruth,然后更新对象属性基于分类器的结果classifierOutput。当你想使用这个语法验证运行知道单个分类器的性能。

例子

classperf (cp,classifierOutput)更新classperformance对象cp分类器的结果classifierOutput。使用这个语法迭代更新分类器的性能,如在一个为多个交叉验证运行循环。

例子

classperf (cp,classifierOutput,testIdx)使用testIdx比较的结果分类器真正的标签和更新对象cptestIdx代表真正的标签的一个子集(地面真理)在当前的验证。

classperf (___,名称,值)与一个或多个指定附加选项名称,值对参数。指定这些选项后,其他所有输入参数。

例子

全部折叠

创建索引的10倍交叉验证和测量数据进行分类费舍尔虹膜数据集。费舍尔虹膜数据集包含宽度和长度测量三种鸢尾的花瓣和萼片。

加载数据集。

负载fisheriris

创建索引的10倍交叉验证。

指数= crossvalind (“Kfold”、物种、10);

初始化一个对象来衡量分类器的性能。

cp = classperf(物种);

执行使用测量数据和报告的分类错误率,的比例不正确分类样本的数量除以总数量的样本分类。

我= 1:10测试=(指数= =我);火车= ~测试;类=分类(量(测试:)量(火车,:),物种(火车,:));classperf (cp、类、测试);结束cp.ErrorRate
ans = 0.0200

假设您想使用的观测数据setosavirginica物种只和排除多色的物种从交叉验证。

标签= {“setosa”,“virginica”};指数= crossvalind (“Kfold”物种10“类”、标签);

指数现在包含0行属于多色的物种。

再次进行分类。

我= 1:10测试=(指数= =我);火车= ~测试;类=分类(量(测试:)量(火车,:),物种(火车,:));classperf (cp、类、测试);结束cp.ErrorRate
ans = 0.0160

加载数据集。

负载fisheririsX =量;Y =物种;

X是一个数字矩阵,包含四个花瓣测量150虹膜。Y包含真正的类名称(标签)相应的虹膜的物种。

初始化classperformance对象使用真正的标签。

cp = classperf (Y)
标签:“描述:“ClassLabels: {3 x1细胞}GroundTruth: x1双[150]NumberOfObservations: 150 ControlClasses: [2 x1双]TargetClasses: 1 ValidationCounter: 0 SampleDistribution: x1双[150]ErrorDistribution: x1双[150]SampleDistributionByClass: x1双[3]ErrorDistributionByClass: x1双[3]CountingMatrix: [4 x3双]CorrectRate:南ErrorRate:南LastCorrectRate: 0 LastErrorRate: 0 InconclusiveRate:南ClassifiedRate:南敏感性:南特异性:南PositivePredictiveValue:南NegativePredictiveValue:南PositiveLikelihood:南NegativeLikelihood:南患病率:南DiagnosticTable: [2 x2双]

再用分类器进行分类。模型旨在通过使用145个样本作为训练集10倍和5样品作为测试集。每个交叉验证运行后,更新分类器性能对象的结果。

我= 1:10(火车、测试)= crossvalind (“LeaveMOut”,Y, 5);mdl = fitcknn (X(火车,:),Y(火车),“NumNeighbors”3);预测=预测(mdl X(测试:));classperf (cp、预测、测试);结束

报告的分类错误率,比例不正确分类样本的数量除以总数量的样本分类。

cp.ErrorRate
ans = 0.0467

输入参数

全部折叠

真正的标签为所有观测数据集,指定为一个整数向量,逻辑向量,字符串向量,或单元阵列的特征向量。

从分类器的分类结果,指定为一个整数向量,逻辑向量,字符串向量,或单元阵列的特征向量。当classifierOutput是一个单元阵列特征向量或字符串向量,向量或一个空字符代表一个不确定的结果。一个向量的整数,代表一个不确定的结果。

  • 如果你不指定testIdx,classifierOutput和数据类型必须相同尺寸的groundTruth

  • 如果您指定testIdx作为一个向量的整数,classifierOutput必须有相同数量的元素testIdx。如果testIdx是一个逻辑向量元素的数量吗classifierOutput必须等于总和(testIdx)

分类器性能信息,指定为一个classperformance对象。有关详细信息,请参见classperformance属性

真正的标签(的子集groundTruth),指定为一个整数或逻辑向量的向量。的testIdx参数显示正确标签的一个子集(测试集)。这个函数使用testIdx作为一个索引向量得到标签的一个子集groundTruth,如groundTruth (testIdx)

  • 如果testIdx是一个逻辑向量,它的长度必须等于观测的总数(cp.NumberOfObservations)。

  • 如果testIdx是一个整数向量,它不能包含重复的整数,并且每个整数必须大于0但小于或等于观测的总数。

名称-值对的观点

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:cp = classperf (groundTruth classifierOutput, "正面",(1 2 3))指定目标(病)类的标签。

标签为目标类,指定为逗号分隔组成的“积极”逻辑向量,和一个向量的整数,字符串向量,或单元阵列的特征向量。

  • 如果groundTruth是一个向量的整数,正面的标签和消极的标签(指定的吗“负面”名称-值对论点)必须是整数的向量。

  • 如果groundTruth是一个字符串向量数组或单元的特征向量,积极的标签和消极的标签可以字符串向量,细胞阵列的特征向量,或正整数向量。条目必须的一个子集grp2idx(groundTruth)

默认情况下,积极的标签对应返回的第一课grp2idx (groundTruth)和消极的标签对应于所有其他类。

函数使用积极的标签设置TargetClasses财产的cp对象。

积极的和消极的标签是不相交的子集独特的(groundTruth)。例如,假设您有一个数据集,其中包含6个病人的数据。5患者卵巢、肺癌、前列腺癌、皮肤,或脑癌,一个病人没有癌症。然后ClassLabels ={“卵巢”、“肺”、“前列腺”,“皮肤”,“大脑”,“健康”}。您可以测试分类器对肺癌仅通过设置积极的标签[2]和消极的标签(1 3 4 5 6)。或者,您可以测试任何类型的癌症通过设置积极的标签(1 2 3 4 5)和消极的标签[6]

在临床试验中,向量函数计算不确定值(空字符)为假阴性计算特异性和灵敏度计算的假阳性。函数不计算任何测试观察其真正的联盟内的类不积极的标签和消极的标签。但是,如果真正的类测试观察是在联盟但其预测类是不受groundTruth函数计算,观察是不确定的。

例子:"正面",[1 - 2]

标签控制类,指定为逗号分隔组成的“负面”逻辑向量,和一个向量的整数,字符串向量,或单元阵列的特征向量。

  • 如果groundTruth是一个向量的整数,正面的标签和消极的标签(指定的吗“负面”名称-值对论点)必须是整数的向量。

  • 如果groundTruth是一个字符串向量数组或单元的特征向量,积极的标签和消极的标签可以字符串向量,细胞阵列的特征向量,或正整数向量。条目必须的一个子集grp2idx(groundTruth)

默认情况下,积极的标签对应返回的第一课grp2idx (groundTruth)和消极的标签对应于所有其他类。

函数使用的负面标签设置ControlClasses财产的cp对象。有关函数如何使用积极的和消极的标签,看看“积极”

例子:“负面”,[3]

之前介绍过的R2006a