自定义分类器指标 - Amazon Comprehend

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义分类器指标

Amazon Comprehend 为您提供一些指标,帮助您估算自定义分类器对您工作的效果如何。它们基于训练分类器模型,因此,尽管它们准确地表示模型在训练期间的性能,但它们只是分类期间模型性能的近似值。

每当返回经过训练的自定义分类器的元数据时,都会包含指标。

注意

请参阅指标:精度、召回和 fScore了解精度、召回和 F1 分数的基本指标。这些指标是在班级级别定义的。我们已经使用了宏观的将这些指标组合在一起得出测试集 P、R、F1 的平均值,如下所述。

Amazon ComprehendConfusion作为自定义分类器模型训练的一部分。这被放置在中指定的输出文件中CreateDocumentClassifier运算,可用于评估模型的运行情况。

指标

Amazon Comprehend 支持以下指标:

这些可以在分类器详细信息控制台中的页面。


        自定义分类器指标

Accuracy

精度表示模型准确预测的测试数据中标签的百分比。换句话说,这是正确识别的标签的比例。其计算方法是将测试文档中正确识别的标签数除以测试文档中的标签总数。

例如

A 个Label 预测Label 对/错

1

1

Right

0

1

错了

2

3

错了

3

3

Right

2

2

Right

1

1

Right

3

3

Right

准确度等于 “权限” 数除以测试样本总数 = 5/7 = 0.714 或 71.4%

精度(宏精度)

精度是衡量分类器结果在测试数据中的用处的度量。它定义为正确分类的文档数除以该类的分类总数。高精度意味着分类器返回的相关结果要比不相关的结果多得多。

这些区域有:Precision指标也称为宏精度.

在以下测试集中对此进行了演示:

Label 样本量 标签精度

label_1

400

0.75

label_2

300

0.80 美元

label_3

30000

0.90

label_4

20

0.50

label_5

10

0.40

因此,模型的精度(宏精度)度量为:

Macro Precision = (0.75 + 0.80 + 0.90 + 0.50 + 0.40)/5 = 0.67

召回(宏召回)

这表示模型可以预测的文本中正确类别的百分比。该指标来自对所有可用标签的召回分数的平均值。Recall 是衡量测试数据的分类器结果的完整程度的度量。

高召回率意味着分类器返回了大部分相关结果。

这些区域有:Recall指标也称为宏调用.

在以下测试集中对此进行了演示:

Label 样本量 标签调用

label_1

400

0.70

label_2

300

0.70

label_3

30000

0.98

label_4

20

0.80 美元

label_5

10

0.10

因此,该模型的召回(宏观召回)指标为:

Macro Recall = (0.70 + 0.70 + 0.98 + 0.80 + 0.10)/5 = 0.656

F1 得分(宏 F1 分数)

F1 分数派生自于PrecisionRecall值。它测量分类器的整体精度。最高分为 1,最低分为 0。

Amazon Comprehend宏F1 分数. 它是标签 F1 分数的未加权平均值。以下面的测试集为例:

Label 样本量 Label F1 分数

label_1

400

0.724

label_2

300

0.824

label_3

30000

0.94

label_4

20

0.62

label_5

10

0.16

模型的 F1 分数(宏 F1 分数)的计算方法如下:

Macro F1 Score = (0.724 + 0.824 + 0.94 + 0.62 + 0.16)/5 = 0.6536

Hamming losion

错误预测的标签比例。也被视为错误标签占标签总数的比例。接近零的分数越好。

微型精度

原始:

如上所述 Precision,不同之处在于它不是平均所有可用标签的精度分数,而是基于所有精度分数加在一起的总体得分。

微型调用

如上所述 Recall,不同之处在于它不是平均所有标签的召回分数,而是基于所有召回分数加在一起的总分。

微型 F1 分数

与上面的 F1 分数相同,而是微型精度和微型召回指标的组合。

提高自定义分类器的性能

这些指标可让您深入了解自定义分类器在分类作业期间的表现。如果指标较低,则分类模型很可能对您的用例无效。如果发生这种情况,你有几个选项来提高你的分类器性能。

  1. 在训练数据中,提供更具体的数据,以便轻松区分类别。例如,提供能够以唯一的单词/句子最好地表示标签的文档。

  2. 在训练数据中为代表性不足的标签添加更多数据。

  3. 尽量减少类别中的偏差。如果数据中最大的标签大于最小标签中文档的 10 倍,请尝试增加最小标签中的文档数量,并确保将高度代表性和代表性最少的类之间的偏斜率降低到至少 10:1。你也可以尝试从高度代表的类中删除一些文档。

Confusion

训练自定义分类器模型时,Amazon Comprehend 会创建一个混淆矩阵,提供有关模型在训练中的表现的指标。这使您能够评估分类器在运行时的表现如何。该矩阵显示了模型预测的标签矩阵与实际标签的对比,该矩阵是使用为测试训练模型而提交的文档的10%至20%创建的。

混淆矩阵可以很好地指示添加更多数据有助于模型性能的类。沿矩阵对角线显示的标签样本比例越高,则表明分类器能够更准确地对该标签进行分类。如果此数值较小(如果标注分类在矩阵的非对角部分的样本比例较高),则可以尝试添加更多样本。例如,如果 40% 的标签 A 样本被归类为标签 D,则同时为标签 A 和标签 D 添加更多样本将提高分类器的性能。有关更多信息,请参阅 Confusion。

生成的混淆矩阵的格式会有所不同,具体取决于您是使用多类还是多标签模式训练分类器。

多类模式的混淆矩阵

回想一下,在多类别分类中,各个类别是互斥的,每个文档应该只分配一个标签。例如,动物可以是狗或猫,但不能同时使用两者。

考虑以下多类别训练分类器的混淆矩阵示例:

A B X Y <-(predicted label) A 1 2 0 4 B 0 3 0 1 X 0 0 1 0 Y 1 1 1 1 ^ | (actual label)

在这种情况下,模型预测了以下内容:

  • 一个 “A” 标签被正确识别,两个 “A” 标签被错误地识别为实际的 “B” 标签,四个 “A” 标签被错误地识别为 “Y” 标签。

  • 正确识别了三个 “B” 标签,一个 “B” 标签被错误地识别为 “Y” 标签。

  • 正确识别了一个 “X”。

  • 一个 “Y” 标签被错误地识别为 “A” 标签,一个被错误地识别为 “B” 标签,一个被错误地识别为 “X” 标签,另一个被正确识别为 “Y” 标签。

在此矩阵中,正确标识的标签显示在对角线(A: A、B: B、X: X 和 Y: Y)上,因此您可以轻松地检查表中的预测误差,因为它们将表示为该对角线之外的值。在这种情况下,您可以看到模型正确识别 “X” 标签(尽管样本很小),并且可以在75%的时间内正确识别 “B” 标签。但是,它有86%的时间错误地识别 “A” 标签,并以不超过随机几率的速率正确识别 “Y” 标签。

混淆矩阵以 JSON 格式显示,上面的示例如下所示:

{ "type": "multi_class", "confusion_matrix": [ [1, 2, 0,4], [0, 3, 0, 1], [0, 0, 1, 0], [1, 1, 1, 1]], "labels": ["A", "B", "X", "Y"], "all_labels": ["A", "B", "X", "Y"] }

多标签模式的混淆矩阵

回想一下,在多标签分类中,单个标签代表不同的类别,但这些类别在某种程度上是相关的。例如,一部电影可以只是一部动作片,也可以是一部动作片、一部科幻电影和一部喜剧,所有这些都同时存在。

考虑以下多类别训练分类器的混淆矩阵示例。

在本示例中,有三种可能的Label (标签):ComedyAction, 和Drama. 与多类混淆矩阵不同,多标签混淆矩阵为每个标签创建一个 2x2 矩阵,如下所示。

Comedy Action Drama No Yes No Yes No Yes <-(predicted label) No 2 1 No 1 1 No 3 0 Yes 0 2 Yes 2 1 Yes 1 1 ^ ^ ^ | | | |-----------(was this label actually used)--------|

在本例中,模型返回以下内容Comedylabel (标签

  • 2 个实例Comedy标签不存在,并且正确地预测不存在。真阴性 (TN)。

  • 零个实例Comedy标签原本预计会存在,但没有。假阳性 (FP)。

  • 有个例子其中Comedy预计标签不存在,但确实存在。假阴性 (FN)。

  • 2 个实例Comedy标签存在被正确预测为存在。真阳性 (TP)。

与上面的多类混淆矩阵一样,此处正确识别的标签显示在对角线上(是:是和否:否)。您可以轻松地检查表中的预测误差,因为预测误差将表示为该对角线之外的值。在这种情况下,您可以看到模型正确标识Comedy在40%的时间内标记为存在,并且可以在相同程度上(40%)正确识别它们的缺席。但是,它错误地识别Comedy标签在 20% 的时间里都存在。它没有错误地识别Comedy如果不存在,则标记为不存在。

混淆矩阵以 JSON 格式显示,上面的示例如下所示:

{ "type": "multi_label", "confusion_matrix": [ [[2, 1], [0, 2]], [[1, 1], [2, 1]], [[3, 0], [1, 1]] ], "labels": ["Comedy", "Action", "Drama"] "all_labels": ["Comedy", "Action", "Drama"] }

这些区域有: CreateDocumentClassifier API

混淆矩阵在运行时可用CreateDocumentClassifierAPI。运行操作时,混淆矩阵显示在confusion_matrix.json文件,位于s3://user-defined-path/unique-value/output/output.tar.gz其中 user-defined-path 是S3Uri的值OutputDataConfig中的参数CreateDocumentClassifieroperation.