交叉验证结果通常包括以下几个主要指标:
- Intent Evaluation
- Accuracy (准确率): 模型正确预测的意图与总意图数的比值。
- Precision (精确率): 正确预测的正例占所有预测为正例的比值。
- Recall (召回率): 正确预测的正例占所有实际正例的比值。
- F1-Score: 精确率和召回率的调和平均值,综合反映模型的分类性能。
- Entity Evaluation
- Precision (精确率): 正确预测的实体占所有预测为实体的比值。
- Recall (召回率): 正确预测的实体占所有实际为实体的比值。
- F1-Score: 精确率和召回率的调和平均值。
#支持GPU训练,指定显卡序号
CUDA_VISIBLE_DEVICES=0,1 rasa test nlu --cross-validation --folds 5
folds 参数在交叉验证中起到了重要作用,它决定了数据集被分成多少个子集(折)进行交叉验证。具体来说,folds 参数定义了以下几个方面:
- 数据划分
:数据集将被分成 folds 个子集。例如,如果 folds 参数设为 5,数据集将被分成 5 个大小相似的子集。
- 训练和验证
:在每一次交叉验证中,将选择一个子集作为验证集,剩余的子集作为训练集。这样会进行 folds 次训练和验证,每次使用不同的子集作为验证集,其他子集作为训练集。
- 性能评估
:每次训练和验证都会产生一个性能指标,最终的性能评估结果是 folds 次训练和验证结果的平均值。这种方法可以减少因数据划分不同而带来的结果波动,提供更稳定和可靠的模型性能评估。
举例说明
假设你的数据集有 100 个示例,并且你设置 folds 参数为 5:
- 数据集会被分成 5 个子集,每个子集有 20 个示例。
- 进行 5 次训练和验证,每次选取一个不同的子集作为验证集,其他 4 个子集作为训练集。
- 每次训练和验证后,记录模型的性能指标(如准确率、精确率、召回率和 F1 分数)。
- 最后,计算 5 次验证的平均性能指标,作为最终的模型性能评估结果。
intent_errors.json
[
{
"text": "cu",
"intent": "goodbye",
"intent_prediction": {
"name": "affirm",
"confidence": 0.3363857567310333
}
},
{
"text": "of course",
"intent": "affirm",
"intent_prediction": {
"name": "mood_great",
"confidence": 0.7170557975769043
}
},
{
"text": "I don't think so",
"intent": "deny",
"intent_prediction": {
"name": "mood_unhappy",
"confidence": 0.9905767440795898
}
}
]