主要内容

情节

情节接受者操作特征(ROC)曲线和其他性能曲线

    描述

    例子

    图(rocObj)创建一个接受者操作特征(ROC)曲线,这是一个阴谋的真阳性率(TPR)和假阳性(玻璃钢),为每个类的一会财产的rocmetrics对象rocObj。该函数是模型操作点对于每一个曲线,并显示的价值ROC曲线下的面积(AUC)和曲线的类名的传奇。

    图(斧头,rocObj)创建指定的轴上的情节斧头而不是当前的轴。

    例子

    图(___,名称=值)使用一个或多个名称参数指定附加选项除了任何输入参数组合在前面的语法。例如,AverageROCType = "宏",一会= []使用macro-averaging方法计算的平均性能指标和情节的平均ROC曲线。

    例子

    curveObj=情节(___)返回一个ROCCurve对象为每个性能曲线。

    (curveObj,graphicsObjs)=情节(___)也返回图形对象模型的操作点和对角线。

    例子

    全部折叠

    负荷预测的样本分类分数和真正的标签分类问题。

    负载(“flowersDataResponses.mat”)

    trueLabels是真正的图像分类问题和标签吗分数是将softmax预测分数。分数是一个N×K阵列N是观测的数量和K是类的数量。

    trueLabels = flowersData.trueLabels;成绩= flowersData.scores;

    加载类的名字。列的顺序分数遵循类的顺序存储在classNames

    一会= flowersData.classNames;

    创建一个rocmetrics对象通过使用真正的标签trueLabels和分类评分分数。指定的列顺序分数使用一会

    rocObj = rocmetrics (trueLabels、分数、类名);

    rocObj是一个rocmetrics对象存储AUC值和每个类的性能指标AUC指标属性。显示AUC财产。

    rocObj.AUC
    ans =1 x5单一的行向量0.9781 0.9889 0.9728 0.9809 0.9732

    为每个类绘制ROC曲线。

    情节(rocObj)

    图包含一个坐标轴对象。坐标轴对象与标题ROC曲线包含11 roccurve类型的对象,散点、线。这些对象代表黛西(AUC = 0.9781),黛西模型操作点,蒲公英(AUC = 0.9889),蒲公英模型操作点,玫瑰(AUC = 0.9728),玫瑰模型操作点,向日葵(AUC = 0.9809),向日葵模型操作点,郁金香(AUC = 0.9732),郁金香模型操作点。

    标记的实心圆表示模型的操作点。传说显示类名和AUC值曲线。

    画出宏观平均ROC曲线。

    情节(rocObj AverageROCType = [“宏”=[]],类名)

    图包含一个坐标轴对象。坐标轴对象与标题ROC曲线包含2 roccurve类型的对象,线。该对象代表Macro-average (AUC = 0.9773)。

    创建一个rocmetrics对象和情节曲线通过性能情节函数。指定XAxisMetricYAxisMetric名称-值的参数情节函数绘制不同类型的性能曲线以外的ROC曲线。如果你当你调用指定新的指标情节函数,该函数计算新的指标,然后使用它们来绘制曲线。

    加载一个样本的标签和分类问题的预测成绩。对于这个示例,有五类:雏菊、蒲公英、玫瑰、向日葵和郁金香。存储在类名一会。使用生成的分数将softmax预测分数预测函数。分数是一个N×K阵列N是观测的数量和K是类的数量。列的顺序分数遵循类的顺序存储在classNames

    负载(“flowersDataResponses.mat”)成绩= flowersData.scores;trueLabels = flowersData.trueLabels;一会= flowersData.classNames;

    创建一个rocmetrics对象。的rocmetrics在不同的阈值函数计算玻璃钢和TPR。

    rocObj = rocmetrics (trueLabels、分数、类名);

    情节precision-recall曲线第一课。指定y设在度量精度(或阳性预测值)和x设在度量回忆(或真阳性率)。的情节函数计算新的度量值和情节曲线。计算precision-recall曲线下的面积使用的梯形法trapz功能,并显示传说中的值。

    curveObj =情节(rocObj,一会=类名(1),YAxisMetric =“PositivePredictiveValue”XAxisMetric =“TruePositiveRate”);xyData = rmmissing ([curveObj。XData curveObj.YData]);auc = trapz (xyData (: 1), xyData (:, 2));传奇(加入([字符串(类名(1))”(AUC = "字符串(auc)“)”),”“),位置=“西南”)标题(“Precision-Recall曲线”)

    图包含一个坐标轴对象。坐标轴对象与标题Precision-Recall曲线包含一个roccurve类型的对象。这个对象表示黛西(AUC = 0.63331)。

    情节检测错误的权衡(检波器)为第类图。指定y假阴性率和设在度量x设在度量的误判率。使用一个日志规模x设在和y设在。

    f =图;情节(rocObj一会=类名(1),YAxisMetric =“FalseNegativeRate”XAxisMetric =“FalsePositiveRate”)f.CurrentAxes。XScale =“日志”;f.CurrentAxes。YScale =“日志”;标题(“图”)

    图包含一个坐标轴对象。标题精细图的坐标轴对象包含一个类型的对象roccurve。该对象代表了黛西。

    计算置信区间为玻璃钢和TPR固定阈值通过使用引导样品,和情节TPR的置信区间由使用ROC曲线情节函数。这个例子需要统计和机器学习的工具箱™。

    加载一个样本的标签和分类问题的预测成绩。对于这个示例,有五类:雏菊、蒲公英、玫瑰、向日葵和郁金香。存储在类名一会。使用生成的分数将softmax预测分数预测函数。分数是一个N×K阵列N是观测的数量和K是类的数量。列的顺序分数遵循类的顺序存储在classNames

    负载(“flowersDataResponses.mat”)成绩= flowersData.scores;trueLabels = flowersData.trueLabels;一会= flowersData.classNames;

    创建一个rocmetrics对象通过使用真正的标签trueLabels和分类评分分数。指定的列顺序分数使用一会。指定NumBootstraps在100年使用100引导样品计算置信区间。

    rocObj = rocmetrics (trueLabels,分数,一会,NumBootstraps = 100);

    绘制ROC曲线和TPR的置信区间。指定ShowConfidenceIntervals = true的置信区间。

    情节(rocObj ShowConfidenceIntervals = true)

    图包含一个坐标轴对象。坐标轴对象与标题ROC曲线包含11 roccurve类型的对象,散点、线。这些对象代表黛西(AUC = 0.9781),黛西模型操作点,蒲公英(AUC = 0.9889),蒲公英模型操作点,玫瑰(AUC = 0.9728),玫瑰模型操作点,向日葵(AUC = 0.9809),向日葵模型操作点,郁金香(AUC = 0.9732),郁金香模型操作点。

    每个曲线周围的阴影区域表示置信区间。rocmetrics使用分数计算ROC曲线。代表了置信区间估计的不确定性的曲线。

    指定一个类来使用一会名称-值参数。

    情节(rocObj ShowConfidenceIntervals = true,一会=“黛西”)

    图包含一个坐标轴对象。坐标轴对象与标题ROC曲线包含3 roccurve类型的对象,散点、线。这些对象代表黛西(AUC = 0.9781),黛西模型操作点。

    输入参数

    全部折叠

    对象评估分类性能,指定为一个rocmetrics对象。

    目标轴,指定为一个对象。

    如果你不指定轴和当前轴是笛卡尔,情节使用当前轴(gca)。创建一个的更多信息对象,看到gca

    名称-值参数

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

    例子:YAxisMetric = " PositivePredictiveValue " XAxisMetric =“TruePositiveRate”情节的精度(阳性预测值)与召回(真阳性),代表precision-recall曲线。

    平均ROC曲线的方法,指定为“没有”,“微观”,“宏”,“加权”、方法名称的字符串数组或单元阵列的方法名称。

    • 如果您指定“没有”(默认)情节函数不创建平均ROC曲线。的AverageROCType值必须是“没有”如果情节创建性能曲线ROC曲线。

    • 如果你指定多个方法作为字符串数组或单元阵列的特征向量,然后情节功能块多个平均ROC曲线使用指定的方法。

    • 如果指定一个或多个平均方法和指定一会= [],那么情节功能块只有平均ROC曲线。

    情节计算平均性能指标的多类分类问题,和情节ROC曲线平均使用这些方法:

    • “微观”(micro-averaging) -情节发现治疗的平均性能指标one-versus-all二元分类问题是一个二元分类问题。函数计算的混淆矩阵组件结合二元分类问题,然后计算平均玻璃钢和TPR使用混淆矩阵的值。

    • “宏”(macro-averaging) -情节计算平均值为玻璃钢和TPR平均所有one-versus-all二进制的值分类问题。

    • “加权”(加权macro-averaging)情节计算加权平均值为玻璃钢和TPR使用macro-averaging方法和使用类概率(之前之前的属性rocObj)作为权重。

    算法类型决定的向量的长度XData,YData,阈值的属性ROCCurve返回的对象,情节平均ROC曲线。更多细节,请参阅的平均性能指标

    例子:AverageROCType = "宏"

    例子:AverageROCType =(“微”、“宏观”)

    数据类型:字符|字符串

    类标签的阴谋,指定分类,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。和数据类型的值一会必须匹配的类名的一会的属性rocObj(软件对字符或字符串数组作为细胞阵列特征向量)。

    • 如果你指定多个类标签,情节为每个类功能块ROC曲线。

    • 如果您指定一会= []并指定一个或多个平均方法使用AverageROCType,那么情节功能块只有平均ROC曲线。

    例子:一会=(“红”、“蓝色”)

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

    国旗的置信区间y设在指标(YAxisMetric),指定为逻辑0()或1(真正的)。

    ShowConfidenceIntervals值可以是真正的只有在指标的属性rocObj包含的置信区间y设在指标。

    例子:ShowConfidenceIntervals = true

    使用置信区间需要统计和机器学习的工具箱™。

    数据类型:逻辑

    国旗显示扩展的对角线(0,0)[1],指定为逻辑1(真正的)或0()。

    默认值是真正的如果你绘制ROC曲线或平均ROC曲线否则。

    ROC曲线绘制,对角线代表了一个随机标识符,和通过(0,0),[0,1],[1]代表了一个完美的标识符。

    例子:ShowDiagonalLine = false

    数据类型:逻辑

    标志显示模型操作点,指定为逻辑1(真正的)或0()。

    默认值是真正的ROC曲线,平均ROC曲线。的ShowModelOperatingPoint值必须为中华民国以外的性能曲线是假的。

    例子:ShowModelOperatingPoint = false

    数据类型:逻辑

    规的x设在,指定为一个特征向量或字符串标量的内置指标名称或一个自定义指标名称,或一个函数处理(@metricName)。

    • 内置的指标——指定下列内置指标名称之一通过使用一个特征向量或字符串标量。

      的名字 描述
      “TruePositives”“tp” 真正的阳性(TP)数量
      “FalseNegatives”“fn” 假阴性(FN)
      “FalsePositives”“外交政策” 假阳性的数量(FP)
      “TrueNegatives”“tn” 真正的底片(TN)数量
      “SumOfTrueAndFalsePositives”“tp + fp” TP和FP的和
      “RateOfPositivePredictions”“齿” 阳性预测率(RPP),(TP + FP) / (TP + FN + FP + TN)
      “RateOfNegativePredictions”“rnp” 率的负面预测(RNP),(TN + FN) / (TP + FN + FP + TN)
      “准确性”“所以” 的准确性,(TP + TN) / (TP + FN + FP + TN)
      “TruePositiveRate”“tpr” 真阳性率(TPR),也被称为召回或敏感性,TP / (TP + FN)
      “FalseNegativeRate”,“fnr”,或“小姐” 假阴性率(FNR),或错过率,FN / (TP + FN)
      “FalsePositiveRate”“玻璃钢” 假阳性率(玻璃钢),也被称为影响或1-specificity,FP / (TN + FP)
      “TrueNegativeRate”,“tnr”,或“规范” 真阴性率(TNR)或特异性,TN / (TN + FP)
      “PositivePredictiveValue”,“ppv”,或”前的“ 阳性预测值(PPV),或精度,TP / (TP + FP)
      “NegativePredictiveValue”“净现值” 阴性预测值(NPV),TN / (TN + FN)
      “ExpectedCost”“ecost”

      预期成本,(TP *成本(P | P) + FN *成本(N | P) + FP *成本(P | N) + TN *成本(N | N)) / (TP + FN + FP + TN),在那里成本是一个2×2的误分类代价矩阵包含吗[0,成本(N | P);成本(P | N), 0]成本(N | P)分类的成本类(是积极的P)是一种消极类(N),成本(P | N)分类的成本是负类作为正类。

      软件转换K——- - - - - -K指定的矩阵成本名称-值参数rocmetrics每个one-versus-all二进制的2×2矩阵问题。有关详细信息,请参见误分类代价矩阵

      软件计算规模使用前类概率向量(之前)和类的数量标签,然后天平性能指标根据这种规模的向量。有关详细信息,请参见性能指标

    • 自定义度量存储在指标属性——指定自定义指标的名称存储在指标输入对象的属性rocObj。的rocmetrics函数名一个定制的指标“CustomMetricN”,在那里N是指的是自定义的数量指标。例如,指定XAxisMetric = " CustomMetric1 "使用的第一个自定义指标指标的指标x设在。

    • 自定义指标——指定一个新的自定义指标通过使用一个函数处理。一个自定义函数,它返回一个性能指标必须有这种形式:

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

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

      • 一个自定义的度量是一个函数的混淆矩阵(C)、尺度向量(规模),和成本矩阵(成本)。每个one-versus-all二进制软件发现这些输入值的问题。有关详细信息,请参见性能指标

        • C是一个2——- - - - - -2混淆矩阵组成的(TP, FN; FP, TN)

        • 规模是一个2——- - - - - -1尺度向量。

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

      情节函数名一个定制的指标“自定义指标”为axis标签。

      这个软件不支持自定义指标的交叉验证。金宝app相反,您可以指定使用当你创建一个引导rocmetrics对象。

    如果你指定一个新的度量而不是一个指标输入对象的属性rocObj,情节函数计算和情节度量值。如果你当你创建计算置信区间rocObj,情节功能也为新度量计算置信区间。

    情节函数忽略了在性能指标的值。注意,阳性预测值(PPV)为拒绝所有阈值TP=《外交政策》=0和阴性预测值(NPV)接受所有的阈值TN=FN=0。更多细节,请参阅阈值、固定指标,和固定的度量值

    例子:XAxisMetric = " FalseNegativeRate "

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

    规的y设在,指定为一个特征向量或字符串标量的内置的指标名称或自定义指标名称,或一个函数处理(@metricName)。有关详细信息,请参见XAxisMetric

    例子:YAxisMetric = " FalseNegativeRate "

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

    输出参数

    全部折叠

    对象的性能曲线,作为一个返回ROCCurve对象或数组ROCCurve对象。情节返回一个ROCCurve对象为每个性能曲线。

    使用curveObj查询和修改属性的情节在创建它。一个属性列表,看到ROCCurve属性

    图形对象模型的操作点和对角线,作为一个图形阵列包含返回散射对象。

    graphicsObjs包含一个散射为每个模型对象(如果操作点ShowModelOperatingPoint= true)和一个对角线(如果对象ShowDiagonalLine= true)。使用graphicsObjs查询和修改属性模型的操作点和对角线在创建了阴谋。一个属性列表,看到散射特性行属性

    更多关于

    全部折叠

    接受者操作特征(ROC)曲线

    ROC曲线显示了真阳性率与假阳性率不同阈值的分类的分数。

    真正的阳性率和假阳性率定义如下:

    • 真阳性率(TPR),也被称为召回或灵敏度TP / (TP + FN)TP是真阳性的数量和FN的假阴性

    • 假阳性率(玻璃钢),也被称为影响或1-specificity -FP / (TN + FP)FP是假阳性的数量和TN的数量是正确的否定

    ROC曲线上每一点都对应一对TPR和玻璃钢值为一个特定的阈值。你可以找到不同的对TPR和玻璃钢值通过改变阈值,然后创建一个使用双ROC曲线。对于每个类,rocmetrics使用所有不同的调整分值作为阈值来创建一个ROC曲线。

    多类分类问题,rocmetrics制定一套one-versus-all二元分类问题有一个二进制的问题对于每一个类,并找到ROC曲线为每个使用对应的二进制类问题。每个二进制问题假设类一样积极和其他负面的。

    二元分类问题,如果指定分类得分矩阵,rocmetrics制定两个one-versus-all二元分类问题。这些问题对一个类作为正类和其他类作为一个负类,和rocmetrics发现两个ROC曲线。使用一个曲线评价二元分类问题。

    更多细节,请参阅ROC曲线和性能指标

    ROC曲线下面积(AUC)

    ROC曲线下面积(AUC)对应于ROC曲线的积分(TPR值)对玻璃钢玻璃钢=0玻璃钢=1

    AUC总性能测量提供了一个在所有可能的阈值。AUC值的范围01和更大的AUC值表明更好的分类性能。

    One-Versus-All(卵子)编码设计

    one-versus-all(卵子)编码的设计减少了多类分类问题的一组二进制分类问题。在这种编码设计,每个二进制分类对待一个类一样积极和其他类负面的。rocmetrics使用多级分类的卵子编码设计和评估每个类上的性能通过使用二进制分类类是正的。

    例如,三个类的卵子编码设计制定三个二进制分类:

    二进制1 二进制 2 二进制3 类1 1 1 1 二班 1 1 1 3班 1 1 1

    每一行对应一个类,每一列对应一个二分类问题。第一二进制分类假设类1是一个积极的类和其他类是负面的。rocmetrics评估第一节课上的性能通过使用第一个二元分类问题。

    算法

    全部折叠

    调整分数多类分类问题

    对于每个类,rocmetrics调整分类评分(输入参数分数rocmetrics)相对于其他类的分数如果指定分数作为一个矩阵。具体来说,调整分了类之间的区别是给定一个观察类的分数和分数的最大值的类。

    例如,如果你有(年代1,年代2,年代3]在一排分数三个类的分类问题,调整分数值(年代1- - - - - -马克斯(年代2,年代3),年代2- - - - - -马克斯(年代1,年代3),年代3- - - - - -马克斯(年代1,年代2)]

    rocmetrics计算使用调整后的性能指标得分值为每个类。

    二元分类问题,您可以指定分数作为一个两列矩阵或一个列向量。使用一个两列矩阵是一个更简单的选择,因为预测函数分类对象返回分类得分矩阵,可以通过rocmetrics。如果你在一个两列的矩阵,通过分数rocmetrics调整分数以相同的方式调整分数的多级分类,并计算性能指标两类。您可以使用度量值的两类评价二元分类问题。返回一个类的度量值rocmetrics当你通过一个两列矩阵相当于返回的度量值rocmetrics当你指定类作为分类的分数列向量。

    引用

    [1]塞巴斯蒂亚尼,法。在自动文本分类“机器学习。”ACM计算调查34岁的没有。1(2002年3月):1-47。

    版本历史

    介绍了R2022b