- API 文档
- CLI
- 集成指南
- 博客
Communications Mining 开发者指南
一切尽在数字中 - 使用指标评估模型性能
在构建和训练机器学习模型时,了解性能至关重要。 根据训练数据和任务的不同,即使是最先进的模型也可能产生错误的预测,从而导致分析误导或自动化流程出错。
手动遍历示例来检查模型预测是不切实际的,尤其是对于具有数百万数据点的数据集。 相反,Communications Mining 会持续计算并显示多个指标,以帮助分析模型和发现故障。
但是,在某些情况下,指标可能会表现异常。 在本博文中,我们将讨论使用指标时出现的一些问题,以及 Communications Mining 用于简化该流程的一些解决方案。
Communication Mining 允许用户为通信数据构建自定义机器学习模型。 要了解我们在此流程中如何使用指标,想象一个特定的用例会很有帮助。
考虑一家银行的共享邮箱,该银行每天可能会收到数千封电子邮件。 Communications Mining 用于自动对这些电子邮件进行分类,以帮助使用该邮箱的员工更高效地工作。
在实际用例中,邮箱的主题专家将创建数百个标签,以跟踪和自动化各种工作流。 出于我们的目的,我们将考虑一个简化的案例
-
紧急电子邮件。 这些需要在员工的电子邮件客户端中检测并标记。
-
自动生成的电子邮件。 应检测到此类邮件,并将其移至存档文件夹,以保持收件箱整洁。
Urgent
和Auto Generated
标签,并为一些示例电子邮件添加了批注。 Communications Mining 会自动训练 ML 模型,该模型会预测哪些标签适用于电子邮件。 然后,使用此模型自动执行实时数据的电子邮件分类任务。
在最低级别,指标会以用户创建的是/否标签注释的形式将标签预测与正确答案进行比较。
Communications Mining 中的模型不提供有关标签是否存在的二元(是/否)预测。 相反,它们会返回一个 00 到 11 之间的数字。 这表示模型应用标签的可信度。
使用阈值将模型置信度值转换为二进制标签预测。 这只是一个介于 00 和 11 之间的数字,用于对标签的可信度值进行分区。
-
高于阈值时,预计将应用标签(“正”示例)。
-
低于该阈值时,预计不会应用标签(“负”示例)。
使用注释、标签预测和阈值,我们可以将一组示例分为四个不同的组
-
真例 (TP) 。 模型会预测标签,并且标签会应用。
-
误报 (TP) 。 模型会预测标签,但该标签不适用。
-
漏报 (FN) 。 模型不会预测标签,但标签会应用。
-
真负例 (TN) 。 模型不会预测标签,并且标签不适用。
更改标签的阈值将影响属于这四个组的电子邮件,而这四个组将作为许多指标的起点。
准确度
我们可能想要查看模型的准确性。
在所有模型预测中,正确的比例是多少。
这似乎很合理,并且准确性通常被认为是 AI 性能的首选指标。 但是,在某些情况下,准确性可能具有误导性。
Urgent
标签的不良模型,我们得到的准确性分数为:
此分数很高,但我们的模型实际上表现不佳。 准确性可能会高估带有稀有标签(例如Urgent
和Auto Generated
的任务的性能。
精度和 召回率
Urgent
标签的相同示例,我们的模型将获得的精度和召回率值分别为 00。 这突显了此模型的性能有多糟糕。
这些指标在出现频率不同的标签上表现更好,称为类不平衡。 通信数据中的主题很少以相同的速率出现,因此 Communications Mining 中的指标必须考虑到这一点。
对于给定的阈值,我们可以计算精度和召回率值。 但是,这两个指标之间实际上需要权衡取舍
-
高精度。 误报率极低。 这意味着阈值较高,因此只有模型置信度接近 1 的示例才是“正样本”。
-
高召回率。 几乎不需要漏报。 这意味着阈值较低,因此只有模型置信度接近 0 的示例才是“负样本”。
通过分别将阈值设置为接近 00 或接近 11 的值,可以轻松获得良好的精度或召回率分数。 设置阈值代表着两者之间的平衡,最佳折中方案取决于标签的用途。
平衡 成本
Auto Generated
标签应具有高精度(很少误报)。
Urgent
”标签应具有高召回率(很少漏报)。
标签的最佳阈值可最大限度地降低模型出错时的成本。
为方便讨论,假设银行为每封错过的紧急电子邮件(误报)损失了 5 英镑,为每封错误标记为自动生成的电子邮件(误报)损失 10 英镑。 该银行还向员工支付 20 英镑/小时的工资,请其以每小时 100 封的速度删除自动生成的不正确的紧急电子邮件和遗漏的电子邮件。
对于每天收到 1000 封电子邮件的邮箱,可以调整阈值以最大程度地降低每天的预期成本。
精度和召回率需要为每个标签设置一个阈值。 设置这些阈值的速度很慢,尤其是对于可能具有数百个标签的大型数据集。 没有最佳阈值的指标更有用。
完美 模型
考虑一个假设的“完美”模型,该模型可以正确预测每个标签。 存在一个阈值,使此模型具有 100% 的精度和召回率。
高于此阈值时,某些正例将被错误地识别为负例。 这会降低精度,但会使召回率保持在 100%。 同样,降低阈值也会将负数错误地标记为正数。 这会降低召回率,但会将精度保持在 100%。
按照这种逻辑,完美模型的精度/召回率曲线是一个方框形状,其角点为 (100%,100%)(100%,100%) 点。 任何不完美的模型都会在此完美模型下方具有曲线。
这意味着改进模型与增加精度/召回率曲线下的面积相同。
平均 精度
虽然我们确实让用户选择阈值并探索精度/召回率权衡,但平均精度才是我们在 Communications Mining 中对模型进行评分的主要指标。 平均而言,它效果很好,尤其是在误报和误报具有相似成本的情况下。 由于它使用了精度和召回率,因此对于类不平衡具有稳健性,但用户无需设置阈值即可计算精度和召回率。
我们在“验证”页面上以两种方式报告此指标
-
平均精度。 为每个标签报告的单个标签的性能。
-
平均精度。 每个标签的平均精度,所有标签的平均值。 该参数用于衡量数据集中所有标签的性能。
我们使用指标来估计模型性能,但此估计值仅与用于计算它的数据一样好。 即使我们在与训练模型所基于的测试集分开的测试集上评估模型,该测试集仍会从用户注释的示例中提取。 如果该数据不能代表目标任务,则我们的指标可能会产生误导。
以银行业为例,假设我们仅注释在星期一发送的紧急电子邮件,以及在星期五发送的自动生成的电子邮件。 从电子邮件发送之日起,基于这些示例训练的模型就可以完美预测标签。
该模型的平均精度较高,因为它会识别始终适用于用户注释数据的模式。 但是,自动生成的紧急电子邮件可以在任何一天发送。 对于实时电子邮件,该模式将不起作用,并且模型的性能将很差。
这就是为什么我们在 Communications Mining 中对模型进行评分时,不会只返回精度、召回率和平均精度值的原因。 相反,我们会计算模型评分。
模型评分考虑许多不同的性能因素,而不仅仅是平均精度。 这种整体视图减少了使用单个指标的缺陷,同时提供了清晰的模型反馈。 在以后的帖子中,我们将更详细地探讨模型评分,以及如何使用它们在更短的时间内构建更好的模型。