ClassifierMeasurements

ClassifierMeasurements[classifier,testset,prop]

给出当 classifiertestset 上运算时与属性 prop 关联的度量.

ClassifierMeasurements[classifier,testset]

生成一个可应用于任何属性的度量报告.

ClassifierMeasurements[data,]

使用分类 data 而非分类器.

ClassifierMeasurements[,{prop1,prop2,}]

给出属性 prop1prop2 等.

更多信息和选项

  • 度量用于决定不用作训练目的(测试集)的数据分类器的性能.
  • 可能的度量包括分类指标(准确性、似然性等)、可视化(混淆矩阵、受试者操作特征曲线(简称 ROC 曲线)等),或特定样例(如最糟的分类样例).
  • 分类器可以是一个 ClassifierFunction 或一个有 "Class" 解码器的神经集(NetGraphNetChain) 等.
  • ClassifierMeasurements[data,] 中,分类 data 可有如下格式:
  • {class1,class2,}来自分类器的分类(人类、算法等)
    {dist1,dist2,}分类器获取的类别分布
    {<|class1p1,|>,<|class1q1,|>,}分类器获取的分类概率
  • ClassifierMeasurements[,opts] 指定分类器在应用于测试集时应使用选项 opts. ClassifierFunction 给出了可能的选项.
  • ClassifierMeasurements[classifier,testset] 返回一个显示为一个报告面板的 ClassifierMeasurementsObject[],如:
  • ClassifierMeasurementsObject[][prop] 可用于获取属性 prop. 当需要重复属性查询时,这会比每次都使用 ClassifierMeasurements 效率更高.
  • ClassifierMeasurementsObject[][prop,opts] 指定分类器在应用于测试集时应使用选项 opts. 这些选项可取代给到 ClassifierMeasurements 的原始选项.
  • ClassifierMeasurementsClassifierFunction[] 的选项相同,额外选项如下所示:
  • Weights Automatic与测试集的实例相关联的权重
    ComputeUncertaintyFalse是否同时给出度量的统计不确定性
  • 当设置为 ComputeUncertaintyTrue 时,将以 Around[result,err] 形式返回数值测量结果,其中 err 表示与测量 result 相关的标准偏差(对应于 68% 的置信区间).
  • Weights 的可能设置包括:
  • Automatic将权重 1 与所有测试实例关联起来
    {w1,w2,}将权重 wi 与第 i 个测试实例关联起来
  • 把测试实例的权重从 1 改为 2 等价于复制该实例.
  • 权重影响度量和它们的不确定性.
  • 返回与测试集上的分类能力相关的单个数值的属性包括:
  • "Accuracy"正确分类实例的比例
    "Accuracy"nn 个准确率
    "AccuracyBaseline"如果预测最常见类的准确率
    "CohenKappa"科恩卡帕系数
    "Error"被错误分类实例的比例
    "GeometricMeanProbability"实际类别概率的几何平均
    "LogLikelihood"给出测试集的模型的对数似然
    "MeanCrossEntropy"测试实例的平均交叉熵
    "MeanDecisionUtility"测试实例的平均效用
    "Perplexity"平均交叉熵的指数
    "RejectionRate"被划分为 Indeterminate 的实例的比例
    "ScottPi"Scott pi 系数
  • 在测量与测试集上的分类能力相关的属性(如 "Accuracy""Error""MeanCrossEntropy")时,被分类为 Indeterminate 的实例将被丢弃.
  • 与混淆矩阵相关的属性包括:
  • "ConfusionMatrix"cij 类別 j 分类的类别 i 实例的計数
    "ConfusionMatrixPlot"混淆矩阵图形
    "ConfusionMatrixPlot"{c1,c2,}限制于类别 c1c2 等的混淆矩阵图
    "ConfusionMatrixPlot"n最差的 n 个类别组成的子集的混淆矩阵图
    "ConfusionFunction"给出混淆矩阵值的函数
    "TopConfusions"混淆程度最高的类别对
    "TopConfusions"n混淆程度最高的 n 个类别对
  • 与用时相关的属性包括:
  • "EvaluationTime"分类一个样例需要的时间
    "BatchEvaluationTime"当给定一批预测一个样例的边际时间
  • 为测试集的每个实例返回一个值的属性包括:
  • "DecisionUtilities"每个样例的效用函数的值
    "Probabilities"每个样例的实际类别分类概率
    "SHAPValues"每个样例的 Shapley 加性特征解释
  • "SHAPValues" 通过比较将不同的特征集合删除,然后合成所得到的预测来评估特征的贡献. 选项 MissingValueSynthesis 可用于指定如何合成缺失的特征. SHAP 解释是以相对于 class training prior 的优势比乘数 (odds ratio multiplier) 给出的. 可通过 "SHAPValues"n 控制用于对 SHAP 解释进行数值估计的样本的数量.
  • 与概率校准的属性包括:
  • "CalibrationCurve"Logit 标尺中的概率校准曲线
    "LinearCalibrationCurve"线性标尺中的概率校准曲线
    "CalibrationData"概率校准曲线数据
  • 返回图形的属性包括:
  • "AccuracyRejectionPlot"作为拒绝率函数的准确率的绘图
    "ICEPlots"个体条件期望 (ICE)
    "ProbabilityHistogram"实际类别概率的直方图
    "Report"报告主要度量的面板
    "ROCCurve"每个类别的接收者操作特征曲线
    "SHAPPlots"每个类别的 Shapley 加性特征解释图
  • 从测试集返回实例的属性包括:
  • "Examples"所有测试实例
    "Examples"{i,j}被划分为 j 类的所有 i 类实例
    "BestClassifiedExamples"实际类别概率最高的实例
    "WorstClassifiedExamples"实际类别概率最低的实例
    "CorrectlyClassifiedExamples"被正确分类的实例
    "MisclassifiedExamples"被错误分类的实例
    "TruePositiveExamples"每个类别的真正类测试实例
    "FalsePositiveExamples"每个类别的假正类测试实例
    "TrueNegativeExamples"每个类别的真负类测试实例
    "FalseNegativeExamples"每个类别的假负类测试实例
    "IndeterminateExamples"被划分为 Indeterminate 的测试实例
    "LeastCertainExamples"分布熵最高的实例
    "MostCertainExamples"分布熵最低的实例
  • inputiclassi 形式给出实例,其中 classi 是测试集中实例的实际类别.
  • "WorstClassifiedExamples""MostCertainExamples" 这样的属性最多输出 10 个实例. ClassifierMeasurementsObject[][propn] 可用来输出 n 个实例.
  • 为每个类返回一个测量值的属性包括:
  • "AreaUnderROCCurve"每个类别的 ROC 曲线下的面积
    "ClassMeanCrossEntropy"每个类别的平均交叉熵
    "ClassRejectionRate"每个类别的拒绝率
    "F1Score"每个类别的 F1
    "FalseDiscoveryRate"每个类别的错误发现率
    "FalseNegativeRate"每个类别的假负类率
    "FalsePositiveRate"每个类别的假正类率
    "MatthewsCorrelationCoefficient"每个类别的 Matthews 相关系数
    "NegativePredictiveValue"每个类别的负例命中率
    "Precision"每个类别的分类的精确度
    "Recall"每个类别的分类的召回率
    "Specificity"每个类别的特异性
    "TruePositiveNumber"真正类实例的数量
    "FalsePositiveNumber"假正类实例的数量
    "TrueNegativeNumber"真负类实例的数量
    "FalseNegativeNumber"假负类实例的数量
  • ClassifierMeasurementsObject[][propclass] 可用来仅返回与指定类别关联的测量值.
  • ClassifierMeasurementsObject[][prop<|class1w1,class2w2,|>] 可用来返回每个类别测量值的加权平均值.
  • ClassifierMeasurementsObject[][propf] 可用来对返回的类别测量值应用函数 f(如 ClassifierMeasurementsObject[][propMean]).
  • "Precision""Recall" 这样的属性为每个可能的正类给出一个测量值. 负类是所有非正类的类的组合. 对于这样的属性,我们可以用 ClassifierMeasurementsObject[][propaverage] 求所有可能的正类的测量值的平均值,其中 average 可以是:
  • "MacroAverage"所有测量值的统一平均值
    "WeightedMacroAverage"根据相关的类的频次对每个测量值进行加权
    "MicroAverage"合并真正类/真负类等实例,给出唯一的测量值
  • 其他属性包括:
  • "ClassifierFunction"当前被测量的 ClassifierFunction[]
    "Properties"可用测量属性列表

范例

打开所有单元关闭所有单元

基本范例  (4)

在训练集上训练一个分类器:

定义一个测试集:

度量测试集上分类器的准确度:

可视化混淆矩阵:

立即度量多个属性:

在训练集上训练一个分类器:

在测试集上生成分类器的度量对象:

获取可用的度量属性列表:

获取度量对象中的准确率:

获取准确率和其由于有限测试集合大小而产生的概率不确定性:

获取数个度量:

直接从分类样例中测量准确率:

获取度量报告:

从分类概率中度量平均交叉熵:

从类别分布中度量平均交叉熵:

定义一个神经网分类器:

在训练集上训练神经网:

在测试集上度量分类器的准确率:

可视化混淆矩阵:

范围  (7)

决定指标  (3)

根据分好类的样例的真实标签度量其准确率:

获取这个度量的统计不确定性:

将准确率与基线进行对比(总是预测最有可能的测试集类别,在这个例子中是 "B"):

在相同数据上测量误差:

检验误差和准确率的和为 1:

在上两个范例中使用更高的权重测算准确率:

在 MNIST 数据中创建一个训练集和测试集:

在训练集中训练模型:

在测试集中计算模型的准确率:

在测试集中计算模型最高的三个准确率(在三个预测类别中真实类别的概率最高则分类被认为是正确的):

在已分类样例上其真实标签的测量 Cohen's kappa 系数:

在同一数据上测量 Scott's pi:

混淆矩阵和样例提取  (1)

在 MNIST 数据上创建一个训练集和一个测试集:

在训练集上训练一个模型:

在测试集上为这个分类器创建一个分类器度量对象:

找出 10 个分类最差的测试样例(正确类别的概率最低):

计算它们正确类别的概率:

找出 10 个分类最好的测试样例:

计算它们正确类别的概率:

可视化混淆矩阵:

提取混淆矩阵:

提取 "3" 被分类成 "5" 的测试样例数量:

找出 5 个频率最高的类别混淆:

将混淆矩阵限制在一组 3 个最容易相互混淆的类别中:

将混淆矩阵限制在一组 3 个最不容易相互混淆的类别中:

将混淆矩阵限制在类别 "1"、"4" 和 "9" 中:

提取与 "9" 混淆的 "4" 的样例:

概率指标  (1)

加载费雪鸢尾花卉数据集:

创建一个训练集和一个测试集:

训练一个可以从属性辨别鸢尾花种类的分类器:

测量测试集的对数似然(正确类别的对数概率):

测量平均交叉熵:

平均交叉熵是负对数似然值的对数:

测量正确类别概率的几何平均值:

该几何平均值与平均交叉熵相关:

概率校准  (1)

在 MNIST 数据上创建一个训练集和一个测试集:

训练一个概率校准未激活的随机森林分类器:

在 Logit 标尺中可视化测试集中分类器的可靠性图表(即校准曲线):

使用线性标尺可视化同样的可靠性图表:

训练一个校准被激活的分类器:

在 Logit 标尺中可视化其可靠性图表:

在线性标尺中可视化其可靠性图表:

二进制分类指标  (1)

加载费雪鸢尾花卉数据集:

创建一个训练集和一个测试集:

训练一个可从属性辨认鸢尾花种类的分类器:

为每个可能的类别绘制 ROC 曲线:

计算这些曲线下的面积:

测量每个可能的类别的 F1 分数:

若杂色被分类为类别,则测量 F1 分数:

取所有 F1 分数的均值:

根据前述类别为每个分数添加权重:

通过将真正类/真负类等所有类别的样例合在一起计算 F1 分数,给出一个唯一度量:

选项  (6)

ClassPriors  (1)

加载 "Satellite" 数据集的训练集和测试集:

训练训练集上的分类器:

在训练集上训练分类器:

当分类器具有 ClassPriors 的不同值时,可视化获得的混淆矩阵:

通过首先生成 ClassifierMeasurementsObject,执行相同的操作:

IndeterminateThreshold  (1)

加载 "Titanic" 数据集的训练集和测试集:

训练训练集上的分类器:

可视化测试集上分类器的混淆矩阵:

当分类器具有 IndeterminateThreshold 的不同值时,可视化获得的混淆矩阵:

对于 IndeterminateThreshold 的不同值,度量测试集上分类器的准确度:

可视化准确度-拒绝率曲线:

TargetDevice  (1)

使用神经网络培训分类器:

TargetDevice 不同设置的测试集度量分类器的精确度:

UtilityFunction  (1)

加载 "Mushroom" 数据集的训练集和测试集:

训练部分训练集上的分类器:

可视化测试集上分类器的混淆矩阵:

当分类器具有 UtilityFunction 的不同值时,可视化获得的混淆矩阵:

通过首先生成 ClassifierMeasurementsObject,执行相同的操作:

"Uncertainty"  (1)

训练一个分类器,把影评片段分类为 "positive""negative"

用测试集生成一个 ClassifierMeasurements[] 对象:

同时获取准确性度量以及它的不确定性:

同时获取其它属性的度量以及它们的不确定性:

Weights  (1)

在训练集上创建分类器:

生成度量对象,同时指定每个测试实例的权重:

计算准确性:

在使用度量对象时,可以对权重进行修改:

不确定性也受到权重的影响:

应用  (2)

对于费雪鸢尾花卉数据集,训练一个分类器,使其从四个测得特征来预测鸢尾花卉的种类(山鸢尾、变色鸢尾和维吉尼亚鸢尾):

测量测试集上分类器的准确度:

生成一个混淆矩阵,对试验数据的实际分类和利用分类器的预测分类进行可视化:

对错误归类为 "virginica" 的类别 "versicolor" 的实例进行提取:

返回关联组的混淆矩阵:

在 MNIST 数据集的样本上训练分类器:

生成 MNIST 测试集上分类器的 ClassifierMeasurementsObject

提取把 9 误认为 0 的实例:

提取 20 个分类最差的实例:

计算各个类别的 F-值,以找到哪个类的分类器应加以改进:

求拒绝阈值的最小值,以使精确度为 90% 以上:

可视化混淆矩阵,并计算与拒绝阈值对应的 F-值:

可视化 3 种混淆最严重的类别:

Wolfram Research (2014),ClassifierMeasurements,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ClassifierMeasurements.html (更新于 2021 年).

文本

Wolfram Research (2014),ClassifierMeasurements,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ClassifierMeasurements.html (更新于 2021 年).

CMS

Wolfram 语言. 2014. "ClassifierMeasurements." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/ClassifierMeasurements.html.

APA

Wolfram 语言. (2014). ClassifierMeasurements. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ClassifierMeasurements.html 年

BibTeX

@misc{reference.wolfram_2024_classifiermeasurements, author="Wolfram Research", title="{ClassifierMeasurements}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/ClassifierMeasurements.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_classifiermeasurements, organization={Wolfram Research}, title={ClassifierMeasurements}, year={2021}, url={https://reference.wolfram.com/language/ref/ClassifierMeasurements.html}, note=[Accessed: 22-November-2024 ]}