主要内容gydF4y2Ba

rocmetricsgydF4y2Ba

二元和多类分类器的接收机工作特征(ROC)曲线和性能指标gydF4y2Ba

描述gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象来评估分类模型的性能gydF4y2Ba受试者工作特征(ROC)曲线gydF4y2Ba或者其他性能指标。gydF4y2BarocmetricsgydF4y2Ba支持二进制和多类问题。gydF4y2Ba

对于每个类,gydF4y2BarocmetricsgydF4y2Ba的性能指标gydF4y2Baone-versus-allgydF4y2BaROC曲线。方法可以计算平均ROC曲线的度量gydF4y2Ba平均gydF4y2Ba函数。在计算ROC曲线的度量之后,您可以使用gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

默认情况下,gydF4y2BarocmetricsgydF4y2Ba计算假阳性率(FPR)和真阳性率(TPR),得到ROC曲线gydF4y2BaROC曲线下面积(AUC)gydF4y2Ba.可以通过指定gydF4y2BaAdditionalMetricsgydF4y2Ba参数时的名称-值参数或通过调用gydF4y2BaaddMetricsgydF4y2Ba函数在创建对象之后。一个gydF4y2BarocmetricsgydF4y2Ba对象将计算得到的度量值和AUC值存储在gydF4y2Ba指标gydF4y2Ba而且gydF4y2BaAUCgydF4y2Ba属性,分别。gydF4y2Ba

rocmetricsgydF4y2Ba参数时,计算性能指标的逐点置信区间gydF4y2BaNumBootstrapsgydF4y2Ba值为正整数,或者为真正的类标签指定交叉验证数据时(gydF4y2Ba标签gydF4y2Ba)、分类分数(gydF4y2Ba分数gydF4y2Ba)和观察权重(gydF4y2Ba权重gydF4y2Ba).有关详细信息,请参见gydF4y2Ba逐点的置信区间gydF4y2Ba.gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

rocObjgydF4y2Ba= rocmetrics (gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba一会gydF4y2Ba)gydF4y2Ba创建一个gydF4y2BarocmetricsgydF4y2Ba中的真正的类标签gydF4y2Ba标签gydF4y2Ba分类分数在gydF4y2Ba分数gydF4y2Ba.指定gydF4y2Ba标签gydF4y2Ba作为长度为n的向量,并指定gydF4y2Ba分数gydF4y2Ba作为一个大小矩阵gydF4y2BangydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba,在那里gydF4y2BangydF4y2Ba是观察的次数,和gydF4y2BaKgydF4y2Ba是类的数量。gydF4y2Ba一会gydF4y2Ba中的列顺序gydF4y2Ba分数gydF4y2Ba.gydF4y2Ba

的gydF4y2Ba指标gydF4y2Ba而且gydF4y2BaAUCgydF4y2Ba属性包含您指定的每个类的性能指标和AUC值gydF4y2Ba分数gydF4y2Ba而且gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

中指定交叉验证的数据gydF4y2Ba标签gydF4y2Ba而且gydF4y2Ba分数gydF4y2Ba那么,作为单元格数组gydF4y2BarocmetricsgydF4y2Ba计算性能指标的置信区间。gydF4y2Ba

例子gydF4y2Ba

rocObjgydF4y2Ba= rocmetrics (gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba一会gydF4y2Ba,gydF4y2Ba名称=值gydF4y2Ba)gydF4y2Ba使用一个或多个名称-值参数指定其他选项。gydF4y2Ba例如,gydF4y2BaNumBootstraps = 100gydF4y2Ba绘制100个引导样本来计算性能指标的置信区间。gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

True类标签,指定为数字向量、逻辑向量、类别向量、字符数组、字符串数组或字符向量的单元格数组。您还可以指定gydF4y2Ba标签gydF4y2Ba作为用于交叉验证数据的这些类型之一的单元格数组。gydF4y2Ba

  • 对于没有交叉验证的数据,的长度gydF4y2Ba标签gydF4y2Ba的行数gydF4y2Ba分数gydF4y2Ba必须是相等的。gydF4y2Ba

  • 对于交叉验证的数据,必须指定gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba作为具有相同数量元素的单元格数组。gydF4y2BarocmetricsgydF4y2Ba将单元格数组中的一个元素视为来自一个交叉验证折叠的数据,并计算性能指标的逐点置信区间。的长度gydF4y2Ba标签{我}gydF4y2Ba的行数gydF4y2Ba分数{我}gydF4y2Ba必须是相等的。gydF4y2Ba

每一行的gydF4y2Ba标签gydF4y2Ba或gydF4y2Ba标签{我}gydF4y2Ba表示一个观察值的真实标签。gydF4y2Ba

此参数设置gydF4y2Ba标签gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

分类分数,指定为数值矩阵或数值矩阵的单元格数组。gydF4y2Ba

矩阵的每一行gydF4y2Ba分数gydF4y2Ba中指定的所有类的一个观察的分类分数gydF4y2Ba一会gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba必须匹配的类顺序在gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

  • 对于一个矩阵输入,gydF4y2Ba分数(j, k)gydF4y2Ba分类评分观察gydF4y2BajgydF4y2Ba为类gydF4y2Ba类名(k)gydF4y2Ba.gydF4y2Ba您可以指定gydF4y2Ba分数gydF4y2Ba的第二个输出参数gydF4y2Ba预测gydF4y2Ba分类模型对象的功能,用于二进制分类和多类分类。例如,gydF4y2Ba预测gydF4y2Ba的gydF4y2BaClassificationTreegydF4y2Ba返回分类分数作为gydF4y2BangydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba矩阵,gydF4y2BangydF4y2Ba观察的次数和gydF4y2BaKgydF4y2Ba是数字类。将输出传递给gydF4y2BarocmetricsgydF4y2Ba.gydF4y2Ba

    的行数gydF4y2Ba分数gydF4y2Ba的长度gydF4y2Ba标签gydF4y2Ba必须是相等的。gydF4y2BarocmetricsgydF4y2Ba根据其他类的分数调整每个类的分数。有关详细信息,请参见gydF4y2Ba调整了多类分类问题的分数gydF4y2Ba.gydF4y2Ba

  • 对于一个矢量输入,gydF4y2Ba评分(j)gydF4y2Ba分类评分观察gydF4y2BajgydF4y2Ba中指定的类gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

    • 一会gydF4y2Ba只能包含一个类。gydF4y2Ba

    • 之前gydF4y2Ba必须是一个双元素向量gydF4y2Ba前(1)gydF4y2Ba表示指定类的先验概率。gydF4y2Ba

    • 成本gydF4y2Ba必须是一个gydF4y2Ba2gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba矩阵包含gydF4y2Ba(成本(P | P)、成本(N | P);成本(P | N)、成本(N | N))gydF4y2Ba,在那里gydF4y2BaPgydF4y2Ba是正类(为其指定分类分数的类),和gydF4y2BaNgydF4y2Ba是一个负类。gydF4y2Ba

    • 的长度gydF4y2Ba分数gydF4y2Ba的长度gydF4y2Ba标签gydF4y2Ba必须是相等的。gydF4y2Ba

    方法绘制ROC曲线时,如果希望显示模型操作点gydF4y2Ba情节gydF4y2Ba函数中的值gydF4y2Ba评分(j)gydF4y2Ba一定是后验概率。这个限制只适用于矢量输入。gydF4y2Ba

  • 对于交叉验证的数据,必须指定gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba作为具有相同数量元素的单元格数组。gydF4y2BarocmetricsgydF4y2Ba将单元格数组中的一个元素视为来自一个交叉验证折叠的数据,并计算性能指标的逐点置信区间。gydF4y2Ba我分数{}(j, k)gydF4y2Ba分类评分观察gydF4y2BajgydF4y2Ba在元素gydF4y2Ba我gydF4y2Ba为类gydF4y2Ba类名(k)gydF4y2Ba.的行数gydF4y2Ba分数{我}gydF4y2Ba的长度gydF4y2Ba标签{我}gydF4y2Ba必须是相等的。gydF4y2Ba

有关更多信息,请参见gydF4y2Barocmetrics分类评分输入gydF4y2Ba.gydF4y2Ba

此参数设置gydF4y2Ba分数gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

类名称,指定为数字向量、逻辑向量、类别向量、字符数组、字符串数组或字符向量的单元格数组。gydF4y2Ba一会gydF4y2Ba必须具有与true标签相同的数据类型gydF4y2Ba标签gydF4y2Ba.中的值gydF4y2Ba一会gydF4y2Ba必须出现在gydF4y2Ba标签gydF4y2Ba.gydF4y2Ba

  • 中仅为一个类指定分类分数gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba一会gydF4y2Ba仅指定该类的名称。gydF4y2Ba

  • 否则,gydF4y2Ba一会gydF4y2Ba中的类的顺序gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba成本gydF4y2Ba,gydF4y2Ba之前gydF4y2Ba.gydF4y2Ba

此参数设置gydF4y2Ba一会gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba|gydF4y2Ba分类gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。gydF4y2Ba

例子:gydF4y2BaFixedMetric =“FalsePositiveRate FixedMetricValues = 0:0.01:1gydF4y2Ba保持固定的FPR值gydF4y2Ba0:0.01:1gydF4y2Ba.gydF4y2Ba

性能指标gydF4y2Ba

全部展开gydF4y2Ba

要计算的其他模型性能指标,指定为内置指标名称的字符向量或字符串标量、名称的字符串数组、函数句柄(gydF4y2Ba@metricNamegydF4y2Ba),或名称或函数句柄的单元格数组。一个gydF4y2BarocmetricsgydF4y2Ba对象总是计算假阳性率(FPR)和真阳性率(TPR)来得到ROC曲线。因此,您不必指定计算FPR和TPR。gydF4y2Ba

  • 内置度量—通过使用字符向量或字符串标量指定以下内置度量名称之一。可以使用字符串数组指定多个。gydF4y2Ba

    的名字gydF4y2Ba 描述gydF4y2Ba
    “TruePositives”gydF4y2Ba或gydF4y2Ba“tp”gydF4y2Ba 真阳性数(TP)gydF4y2Ba
    “FalseNegatives”gydF4y2Ba或gydF4y2Ba“fn”gydF4y2Ba 假阴性数(FN)gydF4y2Ba
    “FalsePositives”gydF4y2Ba或gydF4y2Ba“外交政策”gydF4y2Ba 假阳性数(FP)gydF4y2Ba
    “TrueNegatives”gydF4y2Ba或gydF4y2Ba“tn”gydF4y2Ba 真阴性数(TN)gydF4y2Ba
    “SumOfTrueAndFalsePositives”gydF4y2Ba或gydF4y2Ba“tp + fp”gydF4y2Ba TP和FP的和gydF4y2Ba
    “RateOfPositivePredictions”gydF4y2Ba或gydF4y2Ba“齿”gydF4y2Ba 正面预测率(RPP),gydF4y2Ba(TP + FP) / (TP + FN + FP + TN)gydF4y2Ba
    “RateOfNegativePredictions”gydF4y2Ba或gydF4y2Ba“rnp”gydF4y2Ba 负面预测率(RNP),gydF4y2Ba(TN + FN) / (TP + FN + FP + TN)gydF4y2Ba
    “准确性”gydF4y2Ba或gydF4y2Ba“所以”gydF4y2Ba 的准确性,gydF4y2Ba(TP + TN) / (TP + FN + FP + TN)gydF4y2Ba
    “FalseNegativeRate”gydF4y2Ba,gydF4y2Ba“fnr”gydF4y2Ba,或gydF4y2Ba“小姐”gydF4y2Ba 误报率(FNR)或漏报率,gydF4y2BaFN / (TP + FN)gydF4y2Ba
    “TrueNegativeRate”gydF4y2Ba,gydF4y2Ba“tnr”gydF4y2Ba,或gydF4y2Ba“规范”gydF4y2Ba 真阴性率(TNR)或特异性,gydF4y2BaTN / (TN + FP)gydF4y2Ba
    “PositivePredictiveValue”gydF4y2Ba,gydF4y2Ba“ppv”gydF4y2Ba,或gydF4y2Ba”前的“gydF4y2Ba 正预测值(PPV),或精度,gydF4y2BaTP / (TP + FP)gydF4y2Ba
    “NegativePredictiveValue”gydF4y2Ba或gydF4y2Ba“净现值”gydF4y2Ba 阴性预测值(NPV),gydF4y2BaTN / (TN + FN)gydF4y2Ba
    “ExpectedCost”gydF4y2Ba或gydF4y2Ba“ecost”gydF4y2Ba

    预期成本,gydF4y2Ba(TP *成本(P | P) + FN *成本(N | P) + FP *成本(P | N) + TN *成本(N | N)) / (TP + FN + FP + TN)gydF4y2Ba,在那里gydF4y2Ba成本gydF4y2Ba2 × 2的错误分类成本矩阵包含gydF4y2Ba[0,成本(N | P);成本(P | N), 0]gydF4y2Ba.gydF4y2Ba成本(N | P)gydF4y2Ba是对正类进行错误分类的代价(gydF4y2BaPgydF4y2Ba)作为否定类(gydF4y2BaNgydF4y2Ba),gydF4y2Ba成本(P | N)gydF4y2Ba就是把消极类错误地分类为积极类的代价。gydF4y2Ba

    该软件将gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba指定的矩阵gydF4y2Ba成本gydF4y2Ba名称-值参数gydF4y2BarocmetricsgydF4y2Ba到一个2 × 2矩阵来解决每一个一元对全二元问题。有关详细信息,请参见gydF4y2Ba误分类代价矩阵gydF4y2Ba.gydF4y2Ba

    该软件使用先验类概率(gydF4y2Ba之前gydF4y2Ba)和课程数目gydF4y2Ba标签gydF4y2Ba,然后根据这个缩放向量缩放性能指标。有关详细信息,请参见gydF4y2Ba性能指标gydF4y2Ba.gydF4y2Ba

  • 自定义度量—通过使用函数句柄指定自定义度量。返回性能指标的自定义函数必须具有以下形式:gydF4y2Ba

    度量= customMetric (C、规模、成本)gydF4y2Ba

    • 输出参数gydF4y2Ba度规gydF4y2Ba是标量值。gydF4y2Ba

    • 自定义度量是混淆矩阵(gydF4y2BaCgydF4y2Ba),尺度向量(gydF4y2Ba规模gydF4y2Ba)和成本矩阵(gydF4y2Ba成本gydF4y2Ba).该软件为每个一元对全二元问题找到这些输入值。有关详细信息,请参见gydF4y2Ba性能指标gydF4y2Ba.gydF4y2Ba

      • CgydF4y2Ba是一个gydF4y2Ba2gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba混淆矩阵由gydF4y2Ba(TP, FN; FP, TN)gydF4y2Ba.gydF4y2Ba

      • 规模gydF4y2Ba是一个gydF4y2Ba2gydF4y2Ba——- - - - - -gydF4y2Ba1gydF4y2Ba尺度向量。gydF4y2Ba

      • 成本gydF4y2Ba是一个gydF4y2Ba2gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba误分类代价矩阵。gydF4y2Ba

    该软件不支持对自定义度量的交叉验证。相反,您可以指定在创建gydF4y2BarocmetricsgydF4y2Ba对象。gydF4y2Ba

注意,阳性预测值(PPV)为gydF4y2Ba南gydF4y2Ba的拒绝全部阈值gydF4y2BaTPgydF4y2Ba=gydF4y2Ba《外交政策》gydF4y2Ba=gydF4y2Ba0gydF4y2Ba,负预测值(NPV)为gydF4y2Ba南gydF4y2Ba的接受所有阈值gydF4y2BaTNgydF4y2Ba=gydF4y2BaFNgydF4y2Ba=gydF4y2Ba0gydF4y2Ba.有关更多细节,请参见gydF4y2Ba阈值、固定度量和固定度量值gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaAdditionalMetrics =(“准确性”,“PositivePredictiveValue”)gydF4y2Ba

例子:gydF4y2BaAdditionalMetrics ={“准确性”,@m1, @m2}gydF4y2Ba指定精度指标和自定义指标gydF4y2Bam1gydF4y2Ba而且gydF4y2Ba平方米gydF4y2Ba作为额外的指标。gydF4y2BarocmetricsgydF4y2Ba将自定义度量值存储为命名的变量gydF4y2BaCustomMetric1gydF4y2Ba而且gydF4y2BaCustomMetric2gydF4y2Ba在gydF4y2Ba指标gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

固定的度量,指定为gydF4y2Ba“阈值”gydF4y2Ba,gydF4y2Ba“FalsePositiveRate”gydF4y2Ba(或gydF4y2Ba“玻璃钢”gydF4y2Ba),gydF4y2Ba“TruePositiveRate”gydF4y2Ba(或gydF4y2Ba“tpr”gydF4y2Ba),或由gydF4y2BaAdditionalMetricsgydF4y2Ba名称-值参数。要保持固定的自定义度量,请指定gydF4y2BaFixedMetricgydF4y2Ba作为gydF4y2Ba“CustomMetricN”gydF4y2Ba,在那里gydF4y2BaNgydF4y2Ba引用自定义度量的数字。例如,指定gydF4y2Ba“CustomMetric1”gydF4y2Ba来使用指定的第一个自定义度量gydF4y2BaAdditionalMetricsgydF4y2Ba作为固定的度规。gydF4y2Ba

rocmetricsgydF4y2Ba找到与固定值对应的ROC曲线和其他度量值(gydF4y2BaFixedMetricValuesgydF4y2Ba)的固定度规(gydF4y2BaFixedMetricgydF4y2Ba),并将值存储在gydF4y2Ba指标gydF4y2Ba属性作为表。有关更多细节,请参见gydF4y2Ba阈值、固定度量和固定度量值gydF4y2Ba.gydF4y2Ba

如果gydF4y2BarocmetricsgydF4y2Ba计算置信区间,它使用两种方法中的一种进行计算,取决于gydF4y2BaFixedMetricgydF4y2Ba值:gydF4y2Ba

  • 如果gydF4y2BaFixedMetricgydF4y2Ba是gydF4y2Ba“阈值”gydF4y2Ba(默认),gydF4y2BarocmetricsgydF4y2Ba使用阈值平均。gydF4y2Ba

  • 如果gydF4y2BaFixedMetricgydF4y2Ba是非默认值,gydF4y2BarocmetricsgydF4y2Ba使用垂直平均。gydF4y2Ba

有关详细信息,请参见gydF4y2Ba逐点的置信区间gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaFixedMetric = " TruePositiveRate "gydF4y2Ba

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

固定度量的值(gydF4y2BaFixedMetricgydF4y2Ba),指定为gydF4y2Ba“所有”gydF4y2Ba或者一个数字向量。gydF4y2Ba

rocmetricsgydF4y2Ba找到与固定值对应的ROC曲线和其他度量值(gydF4y2BaFixedMetricValuesgydF4y2Ba)的固定度规(gydF4y2BaFixedMetricgydF4y2Ba),并将值存储在gydF4y2Ba指标gydF4y2Ba属性作为表。gydF4y2Ba

默认的gydF4y2BaFixedMetricgydF4y2Ba值是gydF4y2Ba“阈值”gydF4y2Ba,默认为gydF4y2BaFixedMetricValuesgydF4y2Ba值是gydF4y2Ba“所有”gydF4y2Ba.对于每个类,gydF4y2BarocmetricsgydF4y2Ba使用所有不同的gydF4y2Ba调整分值gydF4y2Ba作为阈值,并使用阈值计算性能指标。根据gydF4y2BaUseNearestNeighborgydF4y2Ba设置,gydF4y2BarocmetricsgydF4y2Ba使用与固定值对应的确切阈值或最接近的阈值。有关更多细节,请参见gydF4y2Ba阈值、固定度量和固定度量值gydF4y2Ba.gydF4y2Ba

如果gydF4y2BarocmetricsgydF4y2Ba计算置信区间,它保持gydF4y2BaFixedMetricgydF4y2Ba固定在gydF4y2BaFixedMetricValuesgydF4y2Ba.gydF4y2Ba

  • FixedMetricgydF4y2Ba值是gydF4y2Ba“阈值”gydF4y2Ba,gydF4y2BaFixedMetricValuesgydF4y2Ba是gydF4y2Ba“所有”gydF4y2Ba- - - - - -gydF4y2BarocmetricsgydF4y2Ba在与所有不同阈值对应的值处计算置信区间。gydF4y2Ba

  • FixedMetricgydF4y2Ba价值是一种性能指标,而且gydF4y2BaFixedMetricValuesgydF4y2Ba是gydF4y2Ba“所有”gydF4y2Ba- - - - - -gydF4y2BarocmetricsgydF4y2Ba找到对应于所有不同阈值的度量值,并在对应于度量值的值处计算置信区间。gydF4y2Ba

有关详细信息,请参见gydF4y2Ba逐点的置信区间gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaFixedMetricValues = 0:0.01:1gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

NaN条件,指定为gydF4y2Ba“omitnan”gydF4y2Ba或gydF4y2Ba“includenan”gydF4y2Ba.gydF4y2Ba

  • “omitnan”gydF4y2Ba- - - - - -gydF4y2BarocmetricsgydF4y2Ba忽略所有gydF4y2Ba南gydF4y2Ba对输入中的值进行评分gydF4y2Ba分数gydF4y2Ba和对应的值gydF4y2Ba标签gydF4y2Ba而且gydF4y2Ba权重gydF4y2Ba.gydF4y2Ba

  • “includenan”gydF4y2Ba- - - - - -gydF4y2BarocmetricsgydF4y2Ba使用gydF4y2Ba南gydF4y2Ba对输入中的值进行评分gydF4y2Ba分数gydF4y2Ba的计算。函数将观察值添加到gydF4y2Ba南gydF4y2Ba错误分类的分数在各自的班级中计算。也就是说,该函数用gydF4y2Ba南gydF4y2Ba阳性班级的分数为假阴性(FN),并以gydF4y2Ba南gydF4y2Ba阴性班级的分数为假阳性(FP)。gydF4y2Ba

有关更多细节,请参见gydF4y2Ba南得分值gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaNaNFlag = " includenan "gydF4y2Ba

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

指示符使用最近的度量值,指定为逻辑gydF4y2Ba0gydF4y2Ba(gydF4y2Ba假gydF4y2Ba)或gydF4y2Ba1gydF4y2Ba(gydF4y2Ba真正的gydF4y2Ba).gydF4y2Ba

  • 逻辑gydF4y2Ba0gydF4y2Ba(gydF4y2Ba假gydF4y2Ba) - - -gydF4y2BarocmetricsgydF4y2Ba中指定的固定度量值对应的精确阈值gydF4y2BaFixedMetricValuesgydF4y2Ba为gydF4y2BaFixedMetricgydF4y2Ba.gydF4y2Ba

  • 逻辑gydF4y2Ba1gydF4y2Ba(gydF4y2Ba真正的gydF4y2Ba) -其中gydF4y2Ba调整输入分数gydF4y2Ba,gydF4y2BarocmetricsgydF4y2Ba找到与每个指定的固定度量值对应的阈值最接近的值。gydF4y2Ba

有关更多细节,请参见gydF4y2Ba阈值、固定度量和固定度量值gydF4y2Ba.gydF4y2Ba

的gydF4y2BaUseNearestNeighborgydF4y2Ba值必须是gydF4y2Ba假gydF4y2Ba如果gydF4y2BarocmetricsgydF4y2Ba计算置信区间。否则,默认值为gydF4y2Ba真正的gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaUseNearestNeighbor = falsegydF4y2Ba

数据类型:gydF4y2Ba逻辑gydF4y2Ba

分类模型的选项gydF4y2Ba

全部展开gydF4y2Ba

错误分类的代价,指定为gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba方阵gydF4y2BaCgydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba唯一类的数量是否在gydF4y2Ba标签gydF4y2Ba.gydF4y2BaC (i, j)gydF4y2Ba将一个点分类到类的成本是多少gydF4y2BajgydF4y2Ba如果它真正的阶级是gydF4y2Ba我gydF4y2Ba(也就是说,行对应真正的类,列对应预测的类)。gydF4y2Ba一会gydF4y2Ba指定类的顺序。gydF4y2Ba

rocmetricsgydF4y2Ba转换gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba矩阵转化为2 × 2矩阵来解决每一个一元对全二元问题。有关详细信息,请参见gydF4y2Ba误分类代价矩阵gydF4y2Ba.gydF4y2Ba

中仅为一个类指定分类分数gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba成本gydF4y2Ba值必须为gydF4y2Ba2gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba矩阵包含gydF4y2Ba[0,成本(N | P);成本(P | N), 0]gydF4y2Ba,在那里gydF4y2BaPgydF4y2Ba是正类(为其指定分类分数的类),和gydF4y2BaNgydF4y2Ba是一个负类。gydF4y2Ba成本(N | P)gydF4y2Ba把一个积极的类错误地分类为消极的类的代价是什么gydF4y2Ba成本(P | N)gydF4y2Ba就是把消极类错误地分类为积极类的代价。gydF4y2Ba

默认值为gydF4y2BaC (i, j) = 1gydF4y2Ba如果gydF4y2Ba我~ = jgydF4y2Ba,gydF4y2BaC (i, j) = 0gydF4y2Ba如果gydF4y2Ba我=我gydF4y2Ba.成本矩阵的对角线项必须为零。gydF4y2Ba

此参数设置gydF4y2Ba成本gydF4y2Ba财产。gydF4y2Ba

例子:gydF4y2Ba成本= [0 2;1 0]gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

先验类概率,指定为以下之一:gydF4y2Ba

  • “经验”gydF4y2Ba根据真实类标签中的类频率确定类概率gydF4y2Ba标签gydF4y2Ba.如果你传递观察权重(gydF4y2Ba权重gydF4y2Ba),gydF4y2BarocmetricsgydF4y2Ba还使用权重来计算类概率。gydF4y2Ba

  • “统一”gydF4y2Ba将所有类的概率设置为相等。gydF4y2Ba

  • 标量值的向量,每个类有一个标量值。gydF4y2Ba一会gydF4y2Ba指定类的顺序。gydF4y2Ba

    中仅为一个类指定分类分数gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba之前gydF4y2Ba值必须是一个双元素向量gydF4y2Ba前(1)gydF4y2Ba表示指定类的先验概率。gydF4y2Ba

此参数设置gydF4y2Ba之前gydF4y2Ba财产。gydF4y2Ba

例子:gydF4y2Ba之前= "统一"gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

观察权值,指定为正数值向量或包含正数值向量的单元格数组。gydF4y2Ba

  • 对于没有交叉验证的数据,指定gydF4y2Ba权重gydF4y2Ba作为长度与。相同的数字向量gydF4y2Ba标签gydF4y2Ba.gydF4y2Ba

  • 对于交叉验证的数据,必须指定gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba作为具有相同数量元素的单元格数组。gydF4y2BarocmetricsgydF4y2Ba将单元格数组中的一个元素视为来自一个交叉验证折叠的数据,并计算性能指标的逐点置信区间。的长度gydF4y2Ba权重{我}gydF4y2Ba的长度gydF4y2Ba标签{我}gydF4y2Ba必须是相等的。gydF4y2Ba

rocmetricsgydF4y2Ba权衡观察结果gydF4y2Ba标签gydF4y2Ba而且gydF4y2Ba分数gydF4y2Ba对应的值gydF4y2Ba权重gydF4y2Ba.如果你设置gydF4y2BaNumBootstrapsgydF4y2Ba取值为正整数,gydF4y2BarocmetricsgydF4y2Ba使用权重作为多项抽样概率绘制有替换的样本。gydF4y2Ba

默认情况下,gydF4y2Ba权重gydF4y2Ba是1的向量或包含1的向量的单元格数组。gydF4y2Ba

此参数设置gydF4y2Ba权重gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

置信区间选项gydF4y2Ba

全部展开gydF4y2Ba

点式置信区间的显著性水平,指定为范围中的一个标量gydF4y2Ba(0,1)gydF4y2Ba.gydF4y2Ba

如果您指定gydF4y2BaαgydF4y2Ba作为gydF4y2BaαgydF4y2Ba,然后gydF4y2BarocmetricsgydF4y2Ba计算100×(1 -gydF4y2BaαgydF4y2Ba) %gydF4y2Ba逐点的置信区间gydF4y2Ba对于性能指标。gydF4y2Ba

这个论证与计算置信区间有关。因此,它仅在为指定交叉验证数据时有效gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba,或设置gydF4y2BaNumBootstrapsgydF4y2Ba取值为正整数。gydF4y2Ba

例子:gydF4y2Baα= 0.01gydF4y2Ba指定99%置信区间。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

用于并行计算的引导选项,指定为结构。gydF4y2Ba

您可以指定并行计算引导迭代的选项,并在引导采样期间设置随机数。创建gydF4y2BaBootstrapOptionsgydF4y2Ba结构gydF4y2BastatsetgydF4y2Ba.该表列出了选项字段及其值。gydF4y2Ba

字段名gydF4y2Ba 字段值gydF4y2Ba 默认的gydF4y2Ba
UseParallelgydF4y2Ba

将此值设置为gydF4y2Ba真正的gydF4y2Ba并行计算引导迭代。gydF4y2Ba

假gydF4y2Ba
UseSubstreamsgydF4y2Ba

将此值设置为gydF4y2Ba真正的gydF4y2Ba以可复制的方式并行地进行计算。gydF4y2Ba

要重复计算,设置gydF4y2Ba流gydF4y2Ba到允许子流的类型:gydF4y2Ba“mlfg6331_64”gydF4y2Ba或gydF4y2Ba“mrg32k3a”gydF4y2Ba.gydF4y2Ba

假gydF4y2Ba
流gydF4y2Ba

将此值指定为gydF4y2BaRandStreamgydF4y2Ba对象或此类对象的单元格数组。使用单个对象时除外gydF4y2BaUseParallelgydF4y2Ba值是gydF4y2Ba真正的gydF4y2Ba和gydF4y2BaUseSubstreamsgydF4y2Ba值是gydF4y2Ba假gydF4y2Ba.在这种情况下,使用与并行池大小相同的单元格数组。gydF4y2Ba

如果不指定gydF4y2Ba流gydF4y2Ba,然后gydF4y2BarocmetricsgydF4y2Ba使用默认流或多个流。gydF4y2Ba

此参数仅在指定时有效gydF4y2BaNumBootstrapsgydF4y2Ba作为正整数,用自举法计算置信区间。gydF4y2Ba

此选项需要并行计算工具箱™。gydF4y2Ba

例子:gydF4y2BaBootstrapOptions = statset (UseParallel = true)gydF4y2Ba

数据类型:gydF4y2Ba结构体gydF4y2Ba

引导置信区间类型,指定为该表中的值之一。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“bca”gydF4y2Ba

偏差校正和加速百分位法gydF4y2Ba[8]gydF4y2Ba[9]gydF4y2Ba.这种方法涉及一个gydF4y2BazgydF4y2Ba0gydF4y2Ba使用小于原始样本值的引导值的比例计算的因子。当样本是块状时,为了产生合理的结果,该软件进行计算gydF4y2BazgydF4y2Ba0gydF4y2Ba通过包含与原始样例值相同的一半引导值。gydF4y2Ba

“纠正百分位”gydF4y2Ba或gydF4y2Ba“cpe”gydF4y2Ba 偏差修正百分位法gydF4y2Ba[10]gydF4y2Ba
“正常”gydF4y2Ba或gydF4y2Ba“规范”gydF4y2Ba 带引导偏差和标准误差的正规近似区间gydF4y2Ba[11]gydF4y2Ba
“百分比”gydF4y2Ba或gydF4y2Ba“每”gydF4y2Ba 基本百分位方法gydF4y2Ba
“学生”gydF4y2Ba或gydF4y2Ba“学生”gydF4y2Ba Studentized置信区间gydF4y2Ba[8]gydF4y2Ba

此参数仅在指定时有效gydF4y2BaNumBootstrapsgydF4y2Ba作为正整数,用自举法计算置信区间。gydF4y2Ba

例子:gydF4y2BaBootstrapType = "学生"gydF4y2Ba

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

为计算点式置信区间绘制的引导样本数目,指定为非负整数标量。gydF4y2Ba

如果您指定gydF4y2BaNumBootstrapsgydF4y2Ba作为一个正整数gydF4y2BarocmetricsgydF4y2Ba使用gydF4y2BaNumBootstrapsgydF4y2Ba引导样品。为了创建每个引导样例,函数随机选择gydF4y2BangydF4y2Ba出了gydF4y2BangydF4y2Ba带有替换的输入数据行。默认值gydF4y2Ba0gydF4y2Ba意味着gydF4y2BarocmetricsgydF4y2Ba不使用引导。gydF4y2Ba

rocmetricsgydF4y2Ba通过使用交叉验证的数据或引导样本计算置信区间。因此,如果您指定交叉验证的数据gydF4y2Ba标签gydF4y2Ba,gydF4y2Ba分数gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba,然后gydF4y2BaNumBootstrapsgydF4y2Ba必须gydF4y2Ba0gydF4y2Ba.gydF4y2Ba

有关详细信息,请参见gydF4y2Ba逐点的置信区间gydF4y2Ba.gydF4y2Ba

例子:gydF4y2BaNumBootstraps = 500gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

为学生化的标准误差估计绘制的引导样本数,指定为正整数标量。gydF4y2Ba

此参数仅在指定时有效gydF4y2BaNumBootstrapsgydF4y2Ba作为一个正整数和gydF4y2BaBootstrapTypegydF4y2Ba作为gydF4y2Ba“学生”gydF4y2Ba计算学生化的bootstrap置信区间。gydF4y2BarocmetricsgydF4y2Ba估计学生化的标准误差估计gydF4y2BaNumBootstrapsStudentizedSEgydF4y2Ba引导数据样本。gydF4y2Ba

例子:gydF4y2BaNumBootstrapsStudentizedSE = 500gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

性能指标gydF4y2Ba

此属性是只读的。gydF4y2Ba

ROC曲线下面积(AUC)gydF4y2Ba,指定为数字向量或矩阵。gydF4y2Ba

rocmetricsgydF4y2Ba计算每个单对全ROC曲线(即每个类)的AUC。的列顺序gydF4y2BaAUCgydF4y2Ba属性值与中的类顺序匹配gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

对于一个你指定的二进制问题gydF4y2Ba分数gydF4y2Ba作为一个两列矩阵,这个性质是agydF4y2Ba1gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba包含相同AUC值的向量。AUC值是相同的,因为对于二进制问题,一个类的整体模型性能与另一个类的性能相同。gydF4y2Ba

如果gydF4y2BarocmetricsgydF4y2Ba计算AUC的置信区间gydF4y2BaAUCgydF4y2Ba属性值是一个矩阵,其中第一行对应AUC值,第二行和第三行分别对应下界和上界。gydF4y2BarocmetricsgydF4y2Ba如果函数也计算性能指标的置信区间,则计算AUC的置信区间gydF4y2BaFixedMetricgydF4y2Ba来gydF4y2Ba“阈值”gydF4y2Ba(默认),gydF4y2Ba“FalsePositiveRate”gydF4y2Ba,或gydF4y2Ba“TruePositiveRate”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

性能指标,指定为一个表。gydF4y2Ba

表包含所有类的性能度量值,根据中的类顺序垂直连接gydF4y2Ba一会gydF4y2Ba.表中每个类的每个惟一阈值都有一行。gydF4y2BarocmetricsgydF4y2Ba的值确定要使用的阈值gydF4y2BaFixedMetricgydF4y2Ba,gydF4y2BaFixedMetricValuesgydF4y2Ba,gydF4y2BaUseNearestNeighborgydF4y2Ba.有关详细信息,请参见gydF4y2Ba阈值、固定度量和固定度量值gydF4y2Ba.gydF4y2Ba

表中每个类的行数是惟一阈值的数量。gydF4y2Ba

表的每一行都包含以下变量:gydF4y2Ba类名称gydF4y2Ba,gydF4y2Ba阈值gydF4y2Ba,gydF4y2BaFalsePositiveRategydF4y2Ba,gydF4y2BaTruePositiveRategydF4y2Ba,以及为每个附加指标指定的变量gydF4y2BaAdditionalMetricsgydF4y2Ba.如果指定一个自定义度量,gydF4y2BarocmetricsgydF4y2Ba名度规gydF4y2Ba“CustomMetricN”gydF4y2Ba,在那里gydF4y2BaNgydF4y2Ba引用自定义度量的数字。例如,gydF4y2Ba“CustomMetric1”gydF4y2Ba对应于指定的第一个自定义度量gydF4y2BaAdditionalMetricsgydF4y2Ba.gydF4y2Ba

中的每个变量gydF4y2Ba指标gydF4y2Ba表包含一个向量或三列矩阵。gydF4y2Ba

  • 如果gydF4y2BarocmetricsgydF4y2Ba不计算置信区间,每个变量包含一个向量。gydF4y2Ba

  • 如果gydF4y2BarocmetricsgydF4y2Ba计算置信区间,两者都有gydF4y2Ba类名称gydF4y2Ba变量为gydF4y2BaFixedMetricgydF4y2Ba(gydF4y2Ba阈值gydF4y2Ba,gydF4y2BaFalsePositiveRategydF4y2Ba,gydF4y2BaTruePositiveRategydF4y2Ba(或一个额外的度量)包含一个向量,其他变量包含一个三列矩阵。矩阵的第一列对应度量值,第二列和第三列分别对应下界和上界。gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

分类模型属性gydF4y2Ba

对象时,可以指定以下属性gydF4y2BarocmetricsgydF4y2Ba对象。gydF4y2Ba

此属性是只读的。gydF4y2Ba

类名称,指定为数字向量、逻辑向量、类别向量或字符向量的单元格数组。gydF4y2Ba

有关详细信息,请参见输入参数gydF4y2Ba一会gydF4y2Ba,设置此属性。gydF4y2Ba(该软件将字符或字符串数组视为字符向量的单元格数组。)gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba|gydF4y2Ba分类gydF4y2Ba

此属性是只读的。gydF4y2Ba

错误分类的代价,指定为方阵。gydF4y2Ba

详细信息请参见gydF4y2Ba成本gydF4y2Ba参数,该参数设置此属性。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

True类标签,指定为数字向量、逻辑向量、类别向量、字符向量的单元格数组,或用于交叉验证数据的这些类型之一的单元格数组。gydF4y2Ba

有关详细信息,请参见输入参数gydF4y2Ba标签gydF4y2Ba,设置此属性。gydF4y2Ba(该软件将字符或字符串数组视为字符向量的单元格数组。)gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba|gydF4y2Ba分类gydF4y2Ba

此属性是只读的。gydF4y2Ba

先验类概率,指定为数值向量。gydF4y2Ba

详细信息请参见gydF4y2Ba之前gydF4y2Ba参数,该参数设置此属性。如果将此参数指定为字符向量或字符串标量(gydF4y2Ba“经验”gydF4y2Ba或gydF4y2Ba“统一”gydF4y2Ba),gydF4y2BarocmetricsgydF4y2Ba计算先验概率并存储gydF4y2Ba之前gydF4y2Ba属性作为数值向量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

分类分数,指定为数值矩阵或数值矩阵的单元格数组。gydF4y2Ba

有关详细信息,请参见输入参数gydF4y2Ba分数gydF4y2Ba,设置此属性。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

观察权值,指定为正数值向量或包含正数值向量的单元格数组。gydF4y2Ba

详细信息请参见gydF4y2Ba权重gydF4y2Ba参数,该参数设置此属性。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

对象的功能gydF4y2Ba

addMetricsgydF4y2Ba 计算额外的分类性能指标gydF4y2Ba
平均gydF4y2Ba 计算多类问题中平均受试者工作特征(ROC)曲线的性能指标gydF4y2Ba
情节gydF4y2Ba 绘制接收机工作特性(ROC)曲线和其他性能曲线gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

为二元分类问题计算性能指标(FPR和TPR)gydF4y2BarocmetricsgydF4y2Ba对象,绘制ROC曲线gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

加载gydF4y2Ba电离层gydF4y2Ba数据集。该数据集有34个预测因子(gydF4y2BaXgydF4y2Ba)和351个二进制响应(gydF4y2BaYgydF4y2Ba)的雷达回波,或坏(gydF4y2Ba“b”gydF4y2Ba)或好(gydF4y2Ba‘g’gydF4y2Ba).gydF4y2Ba

负载gydF4y2Ba电离层gydF4y2Ba

将数据划分为训练集和测试集。使用大约80%的观测值来训练支持向量机(SVM)模型,并使用20%的观测值在新数据上测试训练模型的性能。对数据进行分区gydF4y2BacvpartitiongydF4y2Ba.gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba分区的可重复性gydF4y2Bac = cvpartition (Y,坚持= 0.20);trainingIndices =培训(c);gydF4y2Ba训练集的%索引gydF4y2BatestIndices =测试(c);gydF4y2Ba测试集的%索引gydF4y2BaXTrain = X (trainingIndices:);YTrain = Y (trainingIndices);XTest = X (testIndices:);欧美= Y (testIndices);gydF4y2Ba

训练支持向量机分类模型。gydF4y2Ba

Mdl = fitcsvm (XTrain YTrain);gydF4y2Ba

计算测试集的分类分数。gydF4y2Ba

[~,分数]=预测(Mdl XTest);大小(分数)gydF4y2Ba
ans =gydF4y2Ba1×2gydF4y2Ba70 2gydF4y2Ba

输出gydF4y2Ba分数gydF4y2Ba矩阵的大小gydF4y2Ba70gydF4y2Ba——- - - - - -gydF4y2Ba2gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba按照类的顺序gydF4y2BaMdlgydF4y2Ba.中存储的类顺序gydF4y2BaMdl。ClassNames.gydF4y2Ba

Mdl。ClassNames
ans =gydF4y2Ba2 x1细胞gydF4y2Ba{b} {' g '}gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象的真实标签gydF4y2Ba欧美gydF4y2Ba分类分数在gydF4y2Ba分数gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba使用gydF4y2BaMdl。ClassNames.gydF4y2Ba

rocObj = rocmetrics(欧美,分数,Mdl.ClassNames);gydF4y2Ba

rocObjgydF4y2Ba是一个gydF4y2BarocmetricsgydF4y2Ba对象中每个类的AUC值和性能指标gydF4y2BaAUCgydF4y2Ba而且gydF4y2Ba指标gydF4y2Ba属性。显示gydF4y2BaAUCgydF4y2Ba财产。gydF4y2Ba

rocObj。AUCgydF4y2Ba
ans =gydF4y2Ba1×2gydF4y2Ba0.8587 - 0.8587gydF4y2Ba

对于二元分类问题,AUC值是相等的。gydF4y2Ba

的表gydF4y2Ba指标gydF4y2Ba包含两个类的性能度量值,根据类的顺序垂直连接。找到表中第一个类的行,并显示前8行。gydF4y2Ba

idx = strcmp (rocObj.Metrics.ClassName Mdl.ClassNames (1));头(rocObj.Metrics (idx:))gydF4y2Ba
ClassName阈值FalsePositiveRate TruePositiveRate  _________ _________ _________________ ________________ {' b '} 15.545 0 0 0 0.04 15.545 {b} {b} 15.105 0 0.08 11.424 0 0.16 {b} {b} 10.079 0 0.2 {b} 9.9745 0 0.24 {b} 9.9409 0 0 0.32 0.28 9.035 {b}gydF4y2Ba

绘制每个类的ROC曲线gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

情节(rocObj)gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含5个roccurve、scatter、line类型的对象。这些对象表示b (AUC = 0.8587), b模型工作点,g (AUC = 0.8587), g模型工作点。gydF4y2Ba

对于每个类,gydF4y2Ba情节gydF4y2Ba函数绘制ROC曲线,并在模型工作点处显示一个填充圆标记。图例显示了每条曲线的类名和AUC值。gydF4y2Ba

注意,在二元分类问题中,不需要检查两个类的ROC曲线。两条ROC曲线对称,AUC值相同。一个类别的TPR是另一个类别的真负率(TNR), TNR是1-FPR。因此,一个职业的TPR vs . FPR图与另一个职业的1-FPR vs . 1-TPR图是相同的。gydF4y2Ba

绘制第一类的ROC曲线仅通过指定gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

情节(rocObj一会= Mdl.ClassNames (1))gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含roccurve、scatter、line类型的3个对象。这些对象表示b (AUC = 0.8587), b模型工作点。gydF4y2Ba

为一个多类分类问题计算性能指标(FPR和TPR)gydF4y2BarocmetricsgydF4y2Ba对象,并绘制每个类的ROC曲线gydF4y2Ba情节gydF4y2Ba函数。指定gydF4y2BaAverageROCTypegydF4y2Ba名称-值参数gydF4y2Ba情节gydF4y2Ba创建多类问题的平均ROC曲线。gydF4y2Ba

加载gydF4y2BafisheririsgydF4y2Ba数据集。矩阵gydF4y2Ba量gydF4y2Ba包含150种不同花朵的花朵尺寸。向量gydF4y2Ba物种gydF4y2Ba列出每种花的种类。gydF4y2Ba物种gydF4y2Ba包含三种不同的花名。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2Ba

训练一个分类树,将观察结果分类为三个标签中的一个。使用10倍交叉验证交叉验证模型。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaMdl = fitctree(量、物种,Crossval =gydF4y2Ba“上”gydF4y2Ba);gydF4y2Ba

计算验证倍数观察的分类分数。gydF4y2Ba

[~,分数]= kfoldPredict (Mdl);大小(分数)gydF4y2Ba
ans =gydF4y2Ba1×2gydF4y2Ba150年3gydF4y2Ba

输出gydF4y2Ba分数gydF4y2Ba矩阵的大小gydF4y2Ba150gydF4y2Ba——- - - - - -gydF4y2Ba3.gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba按照类的顺序gydF4y2BaMdlgydF4y2Ba.中存储的类顺序gydF4y2BaMdl。ClassNames.gydF4y2Ba

Mdl。ClassNames
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象的真实标签gydF4y2Ba物种gydF4y2Ba分类分数在gydF4y2Ba分数gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba使用gydF4y2BaMdl。ClassNames.gydF4y2Ba

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

rocObjgydF4y2Ba是一个gydF4y2BarocmetricsgydF4y2Ba对象中每个类的AUC值和性能指标gydF4y2BaAUCgydF4y2Ba而且gydF4y2Ba指标gydF4y2Ba属性。显示gydF4y2BaAUCgydF4y2Ba财产。gydF4y2Ba

rocObj。AUCgydF4y2Ba
ans =gydF4y2Ba1×3gydF4y2Ba1.0000 0.9636 0.9636gydF4y2Ba

的表gydF4y2Ba指标gydF4y2Ba包含所有三个类的性能度量值,根据类的顺序垂直连接。查找并显示表中第二个类的行。gydF4y2Ba

idx = strcmp (rocObj.Metrics.ClassName Mdl.ClassNames (2));rocObj.Metrics (idx:)gydF4y2Ba
ans =gydF4y2Ba13×4表gydF4y2BaClassName阈值false posiicverate trueposiicverate ______________ _________ _________________ ________________ {'versicolor'} 1 0 0 {'versicolor'} 0.95455 0.02 0.8 {'versicolor'} 0.91304 0.03 0.9 {'versicolor'} -0.2 0.04 0.9 {'versicolor'} -0.33333 0.06 0.9 {'versicolor'} -0.86957 0.12 0.92 {'versicolor'} -0.91111 0.16 0.96 {'versicolor'} -0.95238 0.38 0.98 {'versicolor'} -0.95349 0.44 0.98{'versicolor'} -1 1 1gydF4y2Ba

绘制每个类的ROC曲线。指定gydF4y2BaAverageROCType = "微"gydF4y2Ba使用微平均方法计算平均ROC曲线的性能指标。gydF4y2Ba

情节(rocObj AverageROCType =gydF4y2Ba“微观”gydF4y2Ba)gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含8个roccurve、scatter、line类型的对象。这些对象分别代表了settosa (AUC = 1), settosa模型工作点,versicor (AUC = 0.9636), versicor模型工作点,virginica (AUC = 0.9636), virginica模型工作点,Micro-average (AUC = 0.9788)。gydF4y2Ba

填充的圆标记表示模型操作点。图例显示了每条曲线的类名和AUC值。gydF4y2Ba

对于包含异常值的生成样本,训练隔离林模型并使用gydF4y2BaiforestgydF4y2Ba函数。gydF4y2BaiforestgydF4y2Ba以向量形式返回分数。使用分数创建一个gydF4y2BarocmetricsgydF4y2Ba对象。利用异常值绘制精度-召回率曲线,找出隔离林模型的模型操作点。gydF4y2Ba

使用高斯联结从二元分布中生成随机数据点。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Barho = [1,0.05;0.05,1];n = 1000;u = copularnd (gydF4y2Ba“高斯”gydF4y2Baρ,n);gydF4y2Ba

在随机选择的观测值中添加5%的噪声,使观测值离群。gydF4y2Ba

噪音= randperm (0.05 * n);true_tf = false (n, 1);true_tf(噪声)= true;u (true_tf 1) = (true_tf 1) * 5;gydF4y2Ba

类训练隔离林模型gydF4y2BaiforestgydF4y2Ba函数。指定训练观察中异常的比例为0.05。gydF4y2Ba

(f, tf,分数)= iforest (u, ContaminationFraction = 0.05);gydF4y2Ba

fgydF4y2Ba是一个gydF4y2BaIsolationForestgydF4y2Ba对象。gydF4y2BaiforestgydF4y2Ba也返回异常指示符(gydF4y2Ba特遣部队gydF4y2Ba)和异常评分(gydF4y2Ba分数gydF4y2Ba),以浏览训练资料。gydF4y2BaiforestgydF4y2Ba确定阈值(gydF4y2Baf.ScoreThresholdgydF4y2Ba),使该函数将训练观察值的指定部分检测为异常。gydF4y2Ba

检查性能gydF4y2BaIsolationForestgydF4y2Ba通过绘制精度-召回率曲线,计算曲线下面积(AUC)值,实现了对目标的识别。创建一个gydF4y2BarocmetricsgydF4y2Ba对象,使用真实异常指示器(gydF4y2Batrue_tfgydF4y2Ba)和异常评分(gydF4y2Ba分数gydF4y2Ba).评分值接近1表示异常,数值也是如此gydF4y2Ba真正的gydF4y2Ba在gydF4y2Batrue_tfgydF4y2Ba.因此,指定类名gydF4y2Ba分数gydF4y2Ba作为gydF4y2Ba真正的gydF4y2Ba.指定gydF4y2BaAdditionalMetricsgydF4y2Ba参数来计算精度值(或正预测值)。gydF4y2Ba

rocObj = rocmetrics (true_tf,分数,真的,AdditionalMetrics =gydF4y2Ba“PositivePredictiveValue”gydF4y2Ba);gydF4y2Ba

函数绘制曲线gydF4y2Ba情节gydF4y2Ba的函数gydF4y2BarocmetricsgydF4y2Ba.指定gydF4y2BaygydF4y2Ba-轴度量作为精度(或正预测值)和gydF4y2BaxgydF4y2Ba-轴度量为召回率(或真阳性率)。在对应的模型操作点处显示一个填充圆gydF4y2Baf.ScoreThresholdgydF4y2Ba.用梯形法计算精度-召回率曲线下的面积gydF4y2BatrapzgydF4y2Ba函数,并在图例中显示值。gydF4y2Ba

(rocObj YAxisMetric = r =阴谋gydF4y2Ba“PositivePredictiveValue”gydF4y2BaXAxisMetric =gydF4y2Ba“TruePositiveRate”gydF4y2Ba);持有gydF4y2Ba在gydF4y2Baidx =找到(rocObj.Metrics.Threshold > = f.ScoreThreshold, 1,gydF4y2Ba“最后一次”gydF4y2Ba);散射(rocObj.Metrics.TruePositiveRate (idx),gydF4y2Ba...gydF4y2BarocObj.Metrics.PositivePredictiveValue (idx),gydF4y2Ba...gydF4y2Ba[], r。Color,“填充”gydF4y2BaxyData = rmmissing([r.]XData r.YData]);auc = trapz (xyData (: 1), xyData (:, 2));传奇(加入([r。DisplayNamegydF4y2Ba" (auc = "gydF4y2Ba字符串(auc)gydF4y2Ba“)”gydF4y2Ba),gydF4y2Ba""gydF4y2Ba),gydF4y2Ba“真模型运算点”gydF4y2Ba)包含(gydF4y2Ba“回忆”起gydF4y2Ba) ylabel (gydF4y2Ba“精度”gydF4y2Ba)标题(gydF4y2Ba“Precision-Recall曲线”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个axes对象。标题为Precision-Recall Curve的axis对象包含两个roccurve、scatter类型的对象。这些对象表示true (AUC = 0.72846), true模型操作点。gydF4y2Ba

使用bootstrap样本计算固定阈值的FPR和TPR的置信区间,并在ROC曲线上绘制TPR的置信区间gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

加载gydF4y2Ba电离层gydF4y2Ba数据集。该数据集有34个预测因子(gydF4y2BaXgydF4y2Ba)和351个二进制响应(gydF4y2BaYgydF4y2Ba)的雷达回波,或坏(gydF4y2Ba“b”gydF4y2Ba)或好(gydF4y2Ba‘g’gydF4y2Ba).gydF4y2Ba

负载gydF4y2Ba电离层gydF4y2Ba

将数据划分为训练集和测试集。使用大约80%的观测值来训练支持向量机(SVM)模型,并使用20%的观测值在新数据上测试训练模型的性能。对数据进行分区gydF4y2BacvpartitiongydF4y2Ba.gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba分区的可重复性gydF4y2Bac = cvpartition (Y,坚持= 0.20);trainingIndices =培训(c);gydF4y2Ba训练集的%索引gydF4y2BatestIndices =测试(c);gydF4y2Ba测试集的%索引gydF4y2BaXTrain = X (trainingIndices:);YTrain = Y (trainingIndices);XTest = X (testIndices:);欧美= Y (testIndices);gydF4y2Ba

训练支持向量机分类模型。gydF4y2Ba

Mdl = fitcsvm (XTrain YTrain);gydF4y2Ba

计算测试集的分类分数。gydF4y2Ba

[~,分数]=预测(Mdl XTest);gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象的真实标签gydF4y2Ba欧美gydF4y2Ba分类分数在gydF4y2Ba分数gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba使用gydF4y2BaMdl。ClassNames.指定gydF4y2BaNumBootstrapsgydF4y2Ba作为100,使用100个引导样本来计算置信区间。gydF4y2Ba

rocObj = rocmetrics(欧美,分数,Mdl。一会,gydF4y2Ba...gydF4y2BaNumBootstraps = 100);gydF4y2Ba

类的表中找到第二个类的行gydF4y2Ba指标gydF4y2Ba属性,并显示前8行。gydF4y2Ba

idx = strcmp (rocObj.Metrics.ClassName Mdl.ClassNames (2));头(rocObj.Metrics (idx:))gydF4y2Ba
ClassName阈值FalsePositiveRate TruePositiveRate  _________ _________ __________________________ ________________________________ {' 0 0 0 0 0 0 7.196 g’}{‘g’}7.196 0 0 0 0 0.022222 0.093023{‘g’}6.2583 0 0 0 0.044444 0.11969{‘g’}5.5719 0 0 0 0.066667 0.020988 0.16024 5.5643{‘g’}0 0 0 0.088889 0.022635 0.18805 5.4618 - 0.04{‘g’}0 0.22222 0.088889 0.022635 0.18805{‘g’}5.3667 - 0.08 0 0.28 0.088889 0.022635 0.18805{‘g’}0 0.28 0.11111 0.045035 - 0.19532 5.1525 - 0.08gydF4y2Ba

表的每一行都包含一个固定阈值的度量值及其FPR和TPR的置信区间。的gydF4y2Ba阈值gydF4y2Ba变量是列向量,而gydF4y2BaFalsePositiveRategydF4y2Ba而且gydF4y2BaTruePositiveRategydF4y2Ba变量是三列矩阵。矩阵的第一列对应度量值,第二列和第三列分别对应下界和上界。gydF4y2Ba

绘制ROC曲线和TPR的置信区间。指定gydF4y2BaShowConfidenceIntervals = truegydF4y2Ba方法来显示置信区间,并指定一个要绘制的类gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

情节(rocObj ShowConfidenceIntervals = true,一会= Mdl.ClassNames (2))gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含roccurve、scatter、line类型的3个对象。这些对象表示g (AUC = 0.8587), g模型工作点。gydF4y2Ba

ROC曲线周围的阴影区域表示置信区间。置信区间表示由于训练模型的测试集的方差而导致的曲线的不确定性。gydF4y2Ba

使用交叉验证的数据计算固定阈值的FPR和TPR的置信区间,并在ROC曲线上绘制TPR的置信区间gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

加载gydF4y2BafisheririsgydF4y2Ba数据集。矩阵gydF4y2Ba量gydF4y2Ba包含150种不同花朵的花朵尺寸。向量gydF4y2Ba物种gydF4y2Ba列出每种花的种类。gydF4y2Ba物种gydF4y2Ba包含三种不同的花名。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2Ba

训练一个朴素贝叶斯模型,将观察结果分类为三个标签中的一个。使用10倍交叉验证交叉验证模型。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaMdl = fitcnb(量、物种,Crossval =gydF4y2Ba“上”gydF4y2Ba);gydF4y2Ba

计算验证倍数观察的分类分数。gydF4y2Ba

[~,分数]= kfoldPredict (Mdl);gydF4y2Ba

将交叉验证的分数和相应的true标签存储在单元格数组中,以便单元格数组中的每个元素对应一个验证折叠。gydF4y2Ba

简历= Mdl.Partition;numTestSets = cv.NumTestSets;cvLabels =细胞(numTestSets, 1);cvScores =细胞(numTestSets, 1);gydF4y2Ba为gydF4y2Bai = 1:numTestSets testdx = test(cv,i);cvLabels{我}=物种(testIdx);cvScores{我}=分数(testIdx:);gydF4y2Ba结束gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象使用单元格数组。如果使用单元格数组指定标签和分数为真,gydF4y2BarocmetricsgydF4y2Ba计算置信区间。gydF4y2Ba

rocObj = rocmetrics (cvLabels cvScores Mdl.ClassNames);gydF4y2Ba

绘制ROC曲线和TPR的置信区间。指定gydF4y2BaShowConfidenceIntervals = truegydF4y2Ba来显示置信区间。gydF4y2Ba

情节(rocObj ShowConfidenceIntervals = true)gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含roccurve、scatter、line类型的7个对象。这些对象分别代表settosa (AUC = 1), settosa模型操作点,versicolor (AUC = 0.9896), versicolor模型操作点,virginica (AUC = 0.9896), virginica模型操作点。gydF4y2Ba

每条曲线周围的阴影区域表示置信区间。的置信区间的宽度gydF4y2BasetosagydF4y2Ba是否为0表示非零假阳性率,因此图中没有为的阴影区域gydF4y2BasetosagydF4y2Ba.置信区间反映了模型中由于训练集和测试集的方差而产生的不确定性。gydF4y2Ba

训练三种不同的分类模型:决策树模型、广义加性模型和朴素贝叶斯模型。使用ROC曲线和AUC值在测试数据集上比较三种模型的性能。gydF4y2Ba

加载存储在中的1994年人口普查数据gydF4y2Bacensus1994gydF4y2Ba.matgydF4y2Ba.该数据集由来自美国人口普查局的人口统计数据组成,用来预测一个人的年收入是否超过5万美元。gydF4y2Ba

负载gydF4y2Bacensus1994gydF4y2Ba

census1994gydF4y2Ba包含训练数据集gydF4y2BaadultdatagydF4y2Ba和测试数据集gydF4y2Ba成人gydF4y2Ba.显示响应变量中的唯一值gydF4y2Ba工资gydF4y2Ba.gydF4y2Ba

一会=独特(adultdata.salary)gydF4y2Ba
一会=gydF4y2Ba2 x1分类gydF4y2Ba< = 50 k > 50 kgydF4y2Ba

通过传递训练数据来训练三个模型gydF4y2BaadultdatagydF4y2Ba并指定响应变量名gydF4y2Ba“工资”gydF4y2Ba.方法指定类的顺序gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

MdlTree = fitctree (adultdata,gydF4y2Ba“工资”gydF4y2Ba=类名、类名);MdlGAM = fitcgam (adultdata,gydF4y2Ba“工资”gydF4y2Ba=类名、类名);MdlNB = fitcnb (adultdata,gydF4y2Ba“工资”gydF4y2Ba=类名、类名);gydF4y2Ba

计算测试数据集的分类分数gydF4y2Ba成人gydF4y2Ba使用训练过的模型。gydF4y2Ba

[~, ScoresTree] =预测(MdlTree,成人);[~, ScoresGAM] =预测(MdlGAM,成人);[~, ScoresNB] =预测(MdlNB,成人);gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象。gydF4y2Ba

rocTree = rocmetrics (adulttest.salary ScoresTree,类名);rocGAM = rocmetrics (adulttest.salary ScoresGAM,类名);rocNB = rocmetrics (adulttest.salary ScoresNB,类名);gydF4y2Ba

绘制每个模型的ROC曲线。默认情况下,gydF4y2Ba情节gydF4y2Ba函数显示图例中的类名和AUC值。要在图例中包括模型名而不是类名,请修改gydF4y2BaDisplayNamegydF4y2Ba财产的gydF4y2BaROCCurvegydF4y2Ba对象返回的gydF4y2Ba情节gydF4y2Ba函数。gydF4y2Ba

图c = cell(3,1);g =细胞(3,1);(g c{1},{1}] =情节((1)rocTree,一会=类名);持有gydF4y2Ba在gydF4y2Bag (c{2},{2}] =情节((1)rocGAM,一会=类名);(g c{3},{3}] =情节((1)rocNB,一会=类名);modelNames = [gydF4y2Ba“决策树模型”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“广义相加模型”gydF4y2Ba,gydF4y2Ba“朴素贝叶斯模型”gydF4y2Ba];gydF4y2Ba为gydF4y2BaI = 1: 3 c{I}。DisplayName=replace(c{i}.DisplayName,...gydF4y2Ba(1)字符串(类名),modelNames (i));g{我}(1)。DisplayName =加入([modelNames(我),gydF4y2Ba“操作点”gydF4y2Ba]);gydF4y2Ba结束gydF4y2Ba持有gydF4y2Ba从gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含9个roccurve、scatter、line类型的对象。这些对象分别代表决策树模型(AUC = 0.8297)、决策树模型工作点、广义加性模型(AUC = 0.9182)、广义加性模型工作点、朴素贝叶斯模型(AUC = 0.8902)、朴素贝叶斯模型工作点。gydF4y2Ba

广义加性模型(gydF4y2BaMdlGAMgydF4y2Ba)的AUC值最高,决策树模型(gydF4y2BaMdlTreegydF4y2Ba)最低。这个结果表明gydF4y2BaMdlGAMgydF4y2Ba测试数据集的平均性能优于gydF4y2BaMdlTreegydF4y2Ba而且gydF4y2BaMdlNBgydF4y2Ba.gydF4y2Ba

找出二元分类模型的模型工作点和最优工作点。使用与最佳工作点相对应的新阈值对测试数据集中的观察数据进行分类。gydF4y2Ba

加载gydF4y2Ba电离层gydF4y2Ba数据集。该数据集有34个预测因子(gydF4y2BaXgydF4y2Ba)和351个二进制响应(gydF4y2BaYgydF4y2Ba)的雷达回波,或坏(gydF4y2BabgydF4y2Ba)或好(gydF4y2BaggydF4y2Ba).gydF4y2Ba

负载gydF4y2Ba电离层gydF4y2Ba

将数据划分为训练集和测试集。使用大约75%的观测值来训练支持向量机(SVM)模型,并使用25%的观测值在新数据上测试训练模型的性能。对数据进行分区gydF4y2BacvpartitiongydF4y2Ba.gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba分区的可重复性gydF4y2Bac = cvpartition (Y,坚持= 0.25);trainingIndices =培训(c);gydF4y2Ba训练集的%索引gydF4y2BatestIndices =测试(c);gydF4y2Ba测试集的%索引gydF4y2BaXTrain = X (trainingIndices:);YTrain = Y (trainingIndices);XTest = X (testIndices:);欧美= Y (testIndices);gydF4y2Ba

训练支持向量机分类模型。gydF4y2Ba

Mdl = fitcsvm (XTrain YTrain);gydF4y2Ba

中存储的类顺序gydF4y2BaMdl。ClassNames.gydF4y2Ba

Mdl。ClassNames
ans =gydF4y2Ba2 x1细胞gydF4y2Ba{b} {' g '}gydF4y2Ba

计算测试集的分类分数。gydF4y2Ba

(日元分数)=预测(Mdl XTest);gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象的真实标签gydF4y2Ba欧美gydF4y2Ba分类分数在gydF4y2Ba分数gydF4y2Ba.的列顺序gydF4y2Ba分数gydF4y2Ba使用gydF4y2BaMdl。ClassNames.gydF4y2Ba

rocObj = rocmetrics(欧美,分数,Mdl.ClassNames);gydF4y2Ba

找到模型的操作点gydF4y2Ba指标gydF4y2Ba的属性gydF4y2BarocObjgydF4y2Ba为类gydF4y2BabgydF4y2Ba.的gydF4y2Ba预测gydF4y2Ba函数将一个观察结果分类到产生较大分数的类中,该类对应于具有非负调整分数的类。方法使用的典型阈值gydF4y2Ba预测gydF4y2Ba函数是0。在一排排的gydF4y2Ba指标gydF4y2Ba的属性gydF4y2BarocObjgydF4y2Ba为类gydF4y2BabgydF4y2Ba,求非负阈值最小的点。曲线上的点表示与阈值0的性能相同。gydF4y2Ba

idx_b = strcmp (rocObj.Metrics.ClassName,gydF4y2Ba“b”gydF4y2Ba);X = rocObj.Metrics (idx_b:) .FalsePositiveRate;: Y = rocObj.Metrics (idx_b) .TruePositiveRate;T = rocObj.Metrics (idx_b:) .Threshold;idx_model =找到(T > = 0, 1,gydF4y2Ba“最后一次”gydF4y2Ba);modelpt = [T(idx_model) X(idx_model) Y(idx_model)]gydF4y2Ba
modelpt =gydF4y2Ba1×3gydF4y2Ba1.2640 0.0179 0.5806gydF4y2Ba

对于二元分类,使平均误分类代价最小的最佳操作点是ROC曲线与斜率直线相交的点gydF4y2Ba 米gydF4y2Ba ,在那里gydF4y2Ba 米gydF4y2Ba 被定义为gydF4y2Ba

米gydF4y2Ba =gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba PgydF4y2Ba |gydF4y2Ba NgydF4y2Ba )gydF4y2Ba -gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba NgydF4y2Ba |gydF4y2Ba NgydF4y2Ba )gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba NgydF4y2Ba |gydF4y2Ba PgydF4y2Ba )gydF4y2Ba -gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba PgydF4y2Ba |gydF4y2Ba PgydF4y2Ba )gydF4y2Ba ⋅gydF4y2Ba ngydF4y2Ba pgydF4y2Ba .gydF4y2Ba

pgydF4y2Ba 在正类中的观察总数,和gydF4y2Ba ngydF4y2Ba 是负类的观察总数。的gydF4y2Ba成本gydF4y2Ba价值是成本矩阵的组成部分gydF4y2Ba CgydF4y2Ba :gydF4y2Ba

CgydF4y2Ba =gydF4y2Ba [gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba PgydF4y2Ba |gydF4y2Ba PgydF4y2Ba )gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba NgydF4y2Ba |gydF4y2Ba PgydF4y2Ba )gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba PgydF4y2Ba |gydF4y2Ba NgydF4y2Ba )gydF4y2Ba 成本gydF4y2Ba (gydF4y2Ba NgydF4y2Ba |gydF4y2Ba NgydF4y2Ba )gydF4y2Ba ]gydF4y2Ba

成本(N | P)gydF4y2Ba把一个积极的类错误地分类为消极的类的代价是什么gydF4y2Ba成本(P | N)gydF4y2Ba就是把消极类错误地分类为积极类的代价。按班级顺序在gydF4y2BaMdl。ClassNames,积极的阶级gydF4y2BaPgydF4y2Ba对应的类gydF4y2BabgydF4y2Ba.gydF4y2Ba

ROC曲线上与斜率直线相交的点gydF4y2Ba 米gydF4y2Ba ,选择一个最接近完美的分类器点(gydF4y2Ba玻璃钢= 0gydF4y2Ba,gydF4y2BaTPR = 1gydF4y2Ba),完美的ROC曲线通过。gydF4y2Ba

找到正类的最佳操作点gydF4y2BabgydF4y2Ba.gydF4y2Ba

p =总和(strcmp(欧美,gydF4y2Ba“b”gydF4y2Ba));n =总和(~ strcmp(欧美,gydF4y2Ba“b”gydF4y2Ba));成本= Mdl.Cost;m =(成本(2,1)成本(2,2))/(成本(1、2)成本(1,1))* n / p;[~,idx_opt] = min(X - Y/m);optpt = [T(idx_opt) X(idx_opt) Y(idx_opt)]gydF4y2Ba
optpt =gydF4y2Ba1×3gydF4y2Ba-1.1978 0.1071 0.7742gydF4y2Ba

绘制班级的ROC曲线gydF4y2BabgydF4y2Ba通过使用gydF4y2Ba情节gydF4y2Ba函数,并显示最优工作点gydF4y2Ba散射gydF4y2Ba函数。gydF4y2Ba

图r = plot(rocObj,ClassNames= .gydF4y2Ba“b”gydF4y2Ba);持有gydF4y2Ba在gydF4y2Ba散射(optpt (2), optpt (3),gydF4y2Ba“填充”gydF4y2Ba,gydF4y2Ba...gydF4y2BaDisplayName =gydF4y2Ba“b最佳工作点”gydF4y2Ba);gydF4y2Ba

图中包含一个axes对象。标题为ROC Curve的坐标轴对象包含roccurve、scatter、line类型的4个对象。这些对象分别表示b (AUC = 0.845), b模型工作点,b最佳工作点。gydF4y2Ba

显示模型工作点和最佳工作点。gydF4y2Ba

array2table ([modelpt; optpt),gydF4y2Ba...gydF4y2BaRowNames = [gydF4y2Ba“模型操作点”gydF4y2Ba“最优操作点”gydF4y2Ba),gydF4y2Ba...gydF4y2BaVariableNames = [gydF4y2Ba“阈值”gydF4y2Ba“FalsePositiveRate”gydF4y2Ba“TruePositiveRate”gydF4y2Ba])gydF4y2Ba
ans =gydF4y2Ba2×3表gydF4y2Ba阈值false posiverate true posiverate _________ _________________ ________________模型工作点1.264 0.017857 0.58065最优工作点-1.1978 0.10714 0.77419gydF4y2Ba

分类gydF4y2BaXTestgydF4y2Ba使用最佳操作点。将调整后的评分大于或等于最佳阈值的观察值分配给阳性类gydF4y2BabgydF4y2Ba.gydF4y2Ba

s = Scores(:,1) - Scores(:,2);Idx_b_opt = (s >= optpt(1));Y2 =细胞(大小(欧美));Y2 (idx_b_opt) = {gydF4y2Ba“b”gydF4y2Ba};Y2 (~ idx_b_opt) = {gydF4y2Ba‘g’gydF4y2Ba};gydF4y2Ba

显示中有不同标签的观测值的调整分数gydF4y2Ba日元gydF4y2Ba(标签gydF4y2Ba预测gydF4y2Ba功能),gydF4y2BaY2gydF4y2Ba(从最优阈值进行标记gydF4y2Baoptpt (1)gydF4y2Ba).gydF4y2Ba

(~比较字符串(Y1, Y2))gydF4y2Ba
ans =gydF4y2Ba11×1gydF4y2Ba-1.1704 -0.8441 -0.8237 -0.4545 -1.0720 -0.4618 -0.2189 -1.1978 -1.0113 -1.1550gydF4y2Ba

11个观察的调整分数低于gydF4y2Ba0gydF4y2Ba但大于或等于最佳阈值。gydF4y2Ba

训练一个多类分类问题的模型之后,创建一个gydF4y2BarocmetricsgydF4y2Ba对象仅用于感兴趣的类。指定gydF4y2BaFixedMetricValuesgydF4y2Ba这gydF4y2BarocmetricsgydF4y2Ba计算指定阈值的性能指标。gydF4y2Ba

阅读示例文件gydF4y2BaCreditRating_Historical.datgydF4y2Ba一个表中。预测数据包括企业客户列表的财务比率和行业部门信息。响应变量由评级机构指定的信用评级组成。预览数据集的前几行。gydF4y2Ba

creditrating = readtable (gydF4y2Ba“CreditRating_Historical.dat”gydF4y2Ba);头(creditrating)gydF4y2Ba
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ ______ ______ _______ ________ _____ ________ _______ 62394 0.013 0.104 0.036 0.447 0.142 3{“BB”}48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A} 48631 0.194 0.263 0.062 1.017 0.228 - 4 {BBB的}43768 0.121 0.413 0.057 3.647 0.466 12 {' AAA '} 39255 -0.117 -0.799 0.01 0.179 0.082 - 4{“CCC”}62236 0.087 0.158 0.049 0.816 0.324 - 2 {BBB的}39354 0.005 0.181 0.034 2.597 0.388 7{“AA”}gydF4y2Ba

因为每一个值gydF4y2BaIDgydF4y2Ba变量是唯一的客户ID,即gydF4y2Ba长度(独特(creditrating.ID))gydF4y2Ba等于观察的次数gydF4y2BacreditratinggydF4y2Ba,gydF4y2BaIDgydF4y2Ba变量是一个糟糕的预测。删除gydF4y2BaIDgydF4y2Ba变量,并将gydF4y2Ba行业gydF4y2Ba变量,gydF4y2Ba分类gydF4y2Ba变量。gydF4y2Ba

creditrating = removevars (creditrating,gydF4y2Ba“ID”gydF4y2Ba);creditrating。行业=分类(creditrating。行业);gydF4y2Ba

将数据划分为训练集和测试集。使用大约80%的观察值来训练神经网络模型,使用20%的观察值来测试训练模型在新数据上的性能。对数据进行分区gydF4y2BacvpartitiongydF4y2Ba.gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba分区的可重复性gydF4y2Bac = cvpartition (creditrating。评级,gydF4y2Ba“坚持”gydF4y2Ba, 0.20);trainingIndices =培训(c);gydF4y2Ba训练集的%索引gydF4y2BatestIndices =测试(c);gydF4y2Ba测试集的%索引gydF4y2BacreditTrain = creditrating (trainingIndices:);信贷= creditrating (testIndices:);gydF4y2Ba

通过传递训练数据来训练神经网络分类器gydF4y2BacreditTraingydF4y2Ba到gydF4y2BafitcnetgydF4y2Ba函数。gydF4y2Ba

Mdl = fitcnet (creditTrain,gydF4y2Ba“评级”gydF4y2Ba);gydF4y2Ba

计算分类分数并预测测试集观察值的信用评级。gydF4y2Ba

(标签、分数)=预测(Mdl信贷);gydF4y2Ba

神经网络分类器的分类分数对应后验概率。gydF4y2Ba

假设您只想为评级而评估模型gydF4y2BaBgydF4y2Ba,gydF4y2BaBBgydF4y2Ba,gydF4y2BaBBBgydF4y2Ba,并忽略其余的评级。gydF4y2Ba

控件中存储的模型中的评级顺序gydF4y2Ba一会gydF4y2Ba属性,并标识要求值的类。gydF4y2Ba

Mdl。ClassNames
ans =gydF4y2Ba7 x1细胞gydF4y2Ba{A}{“AA”}{' AAA '} {B}{“BB”}{BBB的}{“CCC”}gydF4y2Ba
idx_Class = [4 5 6];classesToEvaluate = Mdl.ClassNames (idx_Class);gydF4y2Ba

找出三个类的观察值的索引(gydF4y2BaBgydF4y2Ba,gydF4y2BaBBgydF4y2Ba,gydF4y2BaBBBgydF4y2Ba).gydF4y2Ba

idx = ismember (creditTest.Rating classesToEvaluate);gydF4y2Ba

创建一个gydF4y2BarocmetricsgydF4y2Ba对象使用三个类的真实标签和分数。指定gydF4y2BaFixedMetricValues = 1: -0.25: 1gydF4y2Ba这gydF4y2BarocmetricsgydF4y2Ba计算指定阈值的性能指标。gydF4y2Ba

阈值= 1:-0.25:1;rocObj = rocmetrics (creditTest.Rating (idx),分数(idx idx_Class),gydF4y2Ba...gydF4y2BaclassesToEvaluate FixedMetricValues =阈值);gydF4y2Ba

控件中存储的计算指标gydF4y2Ba指标gydF4y2Ba财产。gydF4y2Ba

rocObj。指标gydF4y2Ba
ans =gydF4y2Ba27×4表gydF4y2BaClassName阈值FalsePositiveRate TruePositiveRate _________ _________ _________________ ________________ {'B'} 0.90791 00 {'B'} 0.79653 0 0.10938 {'B'} 0.51646 0.010309 0.3125 {'B'} 0.26218 0.020619 0.42188 {'B'} 0.0050218 0.048969 0.57812 {'B'} 0.0050218 0.020632 0.10567 0.6875 {'B'} -0.24632 0.10567 0.6875 {'B'} -0.49531 0.1701 0.76562 {'B'} -0.7495 0.5232 0.85938 {'B'} 0.95629 00 {'BB'} 0.50145 0.10112 0.44865 {'BB'} 0.25367 0.14981 0.61081 {'BB'} 0.0013125 0.232210.75135 {'BB'} -0.24929 0.34457 0.86486 {'BB'} -0.49761 0.48315 0.93514 ⋮

的gydF4y2Ba指标gydF4y2Ba属性包含三个评级的性能指标gydF4y2BaBgydF4y2Ba,gydF4y2BaBBgydF4y2Ba,gydF4y2BaBBBgydF4y2Ba和指定的阈值。默认的gydF4y2BaUseNearestNeighborgydF4y2Ba值是gydF4y2Ba真正的gydF4y2Ba如果gydF4y2BarocmetricsgydF4y2Ba不计算置信区间。因此,对于每个指定的阈值,gydF4y2BarocmetricsgydF4y2Ba选择与指定值最接近的调整后的分数值作为阈值。显示指定的阈值和每个类使用的实际阈值。gydF4y2Ba

idx_B = strcmp (rocObj.Metrics.ClassName,gydF4y2Ba“B”gydF4y2Ba);idx_BB = strcmp (rocObj.Metrics.ClassName,gydF4y2Ba“BB”gydF4y2Ba);idx_BBB = strcmp (rocObj.Metrics.ClassName,gydF4y2Ba" BBB "gydF4y2Ba);表(阈值”,rocObj.Metrics.Threshold (idx_B),gydF4y2Ba...gydF4y2BarocObj.Metrics.Threshold (idx_BB),gydF4y2Ba...gydF4y2BarocObj.Metrics.Threshold (idx_BBB),gydF4y2Ba...gydF4y2BaVariableNames = [gydF4y2Ba“固定阈值”gydF4y2Ba;字符串(classesToEvaluate)])gydF4y2Ba
ans =gydF4y2Ba9×4表gydF4y2Ba固定阈值BBB BBB _______________ _________ _________ ________ 1 0.90791 0.95629 0.93627 0.75 0.79653 0.75876 0.75 7576 0.5 0.51646 0.50145 0.50054 0.25 0.26178 0.25367 0.26181 0 0.0050218 0.0013125 0.028665 -0.25 -0.24632 -0.24929 -0.24645 -0.5 -0.49531 -0.49761 -0.49942 -0.75 -0.7495 -0.74873 -0.74982 -1 -0.97041 -0.93627 -0.96758gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

参考文献gydF4y2Ba

《ROC图:研究人员的注意事项和实际考虑》,gydF4y2Ba机器学习gydF4y2Ba31日。1(2004): 1-38。gydF4y2Ba

茨威格,M.和G.坎贝尔。受试者工作特征(ROC)图:临床医学的基本评估工具。gydF4y2Ba临床化学gydF4y2Ba39岁的没有。4(1993): 561-577。gydF4y2Ba

[3]戴维斯,J.和M.戈德里奇。《精度-召回率与ROC曲线之间的关系》gydF4y2BaICML ' 06会议记录gydF4y2Ba, 2006年,第233-240页。gydF4y2Ba

莫斯科维茨,c.s.和m.s.佩佩。量化和比较二元结果的连续预后因素的预测准确性。gydF4y2Ba生物统计学gydF4y2Ba5,不。1(2004): 113 - 27所示。gydF4y2Ba

[5]黄,Y., M. S. Pepe,冯铮。"评估连续标记的预测性"gydF4y2Ba华盛顿大学生物统计学论文系列gydF4y2Ba, 2006, 250 - 61。gydF4y2Ba

布里格斯,W. M.和R.扎雷茨基。技能图:评估连续诊断测试的图形技术gydF4y2Ba生物识别技术gydF4y2Ba64年,没有。1(2008): 250 - 256。gydF4y2Ba

[7] Bettinger R. <使用ROC凸包方法的代价敏感分类器选择>。gydF4y2BaSAS研究所gydF4y2Ba, 2003年。gydF4y2Ba

[8]迪西乔,托马斯·J.和布拉德利·埃夫隆。“引导置信区间”。gydF4y2Ba统计科学gydF4y2Ba11日,没有。3(1996): 189 - 228。gydF4y2Ba

[9]埃夫隆,布拉德利,罗伯特J.蒂布希拉尼。gydF4y2BaBootstrap的介绍gydF4y2Ba.纽约:查普曼&霍尔出版社,1993年。gydF4y2Ba

[10]埃夫隆,布拉德利。gydF4y2Ba重叠刀,引导和其他重采样计划。gydF4y2Ba费城:工业与应用数学学会,1982年。gydF4y2Ba

[11]戴维森,a.c.和D. V.欣克利。gydF4y2BaBootstrap方法及其应用。gydF4y2Ba剑桥大学出版社,1997年。gydF4y2Ba

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2022agydF4y2Ba

Baidu
map