Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文介绍构建业务流程工作流模型的核心概念,包括如何测量模型性能以及业务流程工作流接受的数据格式。
评估指标
数据集分为两部分:一组用于训练,一组用于测试。 训练集用于训练模型,而测试集用作训练后的模型测试,以计算模型性能和评估。 测试集不会在训练过程中被引入模型,以确保模型在新数据上进行测试。
成功完成训练后,将自动触发模型评估。 评估过程首先使用经过训练的模型预测测试集中用户定义的语句意向,并将其与提供的数据标记进行比较(这将建立真实的基线)。 返回结果,以便可以查看模型的性能。 为了进行评估,业务流程工作流使用以下指标:
精准率:度量模型的精确度/准确度。 它是正确识别的正数(真正值)与所有已识别的正值之间的比率。 精准率指标指示正确标记了多少个预测类。
Precision = #True_Positive / (#True_Positive + #False_Positive)召回率:度量模型预测实际正类的能力。 这是预测的真正值与实际标记的结果之间的比率。 召回率指标显示正确的预测类的数量。
Recall = #True_Positive / (#True_Positive + #False_Negatives)F1 分数:F1 分数是精准率和召回率的函数。 在精准率和召回率之间进行平衡时,需要用到它。
F1 Score = 2 * Precision * Recall / (Precision + Recall)
计算以下内容的精准率、查全率和 F1 分数:
- 每个单独的意向(意向级评估)
- 模型整体(模型级别评估)。
对于意向级和模型级评估,精准率、查全率和计算的定义是相同的。 但是,真正、假正和假负的计数可能有所不同。 例如,请考虑以下文本。
Example
- 非常感谢你做出回应
- 打电话给我的朋友
- Hello
- 早上好
使用以下意向:CLUEmail 和 Greeting
该模型可以做出以下预测:
| 语句 | 预测的意向 | 实际意向 |
|---|---|---|
| 非常感谢你做出回应 | CLUEmail | CLUEmail |
| 打电话给我的朋友 | 问候 | CLUEmail |
| Hello | CLUEmail | 问候 |
| 早上好 | 问候 | 问候 |
CLUEmail 意向的意向级别评估
| Key | 计数 | Explanation |
|---|---|---|
| 真正阳性 | 1 | 语句 1 正确预测为 CLUEmail。 |
| 假正 | 1 | 语句 3 错误预测为 CLUEmail。 |
| 假阴性 | 1 | 语句 2 错误预测为 Greeting。 |
精准率 = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
召回率 = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
F1 分数 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Greeting 意向的意向级别评估
| Key | 计数 | Explanation |
|---|---|---|
| 真正阳性 | 1 | 语句 4 正确预测为 Greeting。 |
| 假正 | 1 | 语句 2 错误预测为 Greeting。 |
| 假阴性 | 1 | 语句 3 错误预测为 CLUEmail。 |
精准率 = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
召回率 = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
F1 分数 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
对整体模型进行模型级评估
| Key | 计数 | Explanation |
|---|---|---|
| 真正阳性 | 2 | 所有意向的 TP 总和 |
| 假正 | 2 | 所有意向的 TP 总和 |
| 假阴性 | 2 | 所有意向的 FN 总和 |
精准率 = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 2) = 0.5
召回率 = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 2) = 0.5
F1 分数 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
混淆矩阵
混淆矩阵是用于模型性能评估的 N x N 矩阵,其中 N 是意向数目。 该矩阵将实际标记与模型预测的标记进行比较。 这为模型的性能以及它所犯的错误类型提供了整体视图。
可以使用混淆矩阵来识别彼此之间过于接近且经常被弄错(歧义)的意向。 在这种情况下,请考虑将这些意向合并在一起。 如果无法做到这一点,请考虑添加这两个意向的更多标记示例,帮助模型区分它们。
可以根据混淆矩阵计算模型级别的评估指标:
- 模型的真正值是所有意向的真正值的总和。
- 模型的假正值是所有意向的假正值的总和。
- 模型的假负值是所有意向的假负值的总和。
接受的数据格式
当模型使用数据进行学习时,它期望数据采用特定格式。 标记数据时,该过程会将其转换为本文中所述的 JSON 格式。 你还可以手动标记文件。
JSON 文件格式
如果上传标记文件,则该文件应遵循此格式。
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Orchestration",
"projectName": "{PROJECT-NAME}",
"multilingual": false,
"description": "This is a description",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Orchestration",
"intents": [
{
"category": "{INTENT1}",
"orchestration": {
"targetProjectKind": "Luis|Conversation|QuestionAnswering",
"luisOrchestration": {
"appId": "{APP-ID}",
"appVersion": "0.1",
"slotName": "production"
},
"conversationOrchestration": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}"
},
"questionAnsweringOrchestration": {
"projectName": "{PROJECT-NAME}"
}
}
}
],
"utterances": [
{
"text": "utterance 1",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent1"
}
]
}
}
| Key | 占位符 | Value | Example |
|---|---|---|---|
api-version |
{API-VERSION} |
要调用的 API 的版本。 引用的值适用于已发布的最新模型 版本 。 | 2022-03-01-preview |
confidenceThreshold |
{CONFIDENCE-THRESHOLD} |
这是一个阈值分数,低于该分数时,意图将被预测为无意图 | 0.7 |
projectName |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | EmailApp |
multilingual |
false |
业务流程不支持多语言功能 | false |
language |
{LANGUAGE-CODE} |
指定项目中所用语句的语言代码的字符串。 有关受支持的语言代码的详细信息,请参阅语言支持。 | en-us |
intents |
[] |
一个数组,其中包含项目中的所有意向类型。 这些是编排项目中使用的意图。 | [] |
语句格式
[
{
"intent": "intent1",
"language": "{LANGUAGE-CODE}",
"text": "{Utterance-Text}",
},
{
"intent": "intent2",
"language": "{LANGUAGE-CODE}",
"text": "{Utterance-Text}",
}
]