四时宝库

程序员的知识宝库

开源对话系统Rasa交叉验证(开源的语音对话机器人)

交叉验证结果通常包括以下几个主要指标:

  1. Intent Evaluation
    • Accuracy (准确率): 模型正确预测的意图与总意图数的比值。
    • Precision (精确率): 正确预测的正例占所有预测为正例的比值。
    • Recall (召回率): 正确预测的正例占所有实际正例的比值。
    • F1-Score: 精确率和召回率的调和平均值,综合反映模型的分类性能。
  1. Entity Evaluation
    • Precision (精确率): 正确预测的实体占所有预测为实体的比值。
    • Recall (召回率): 正确预测的实体占所有实际为实体的比值。
    • F1-Score: 精确率和召回率的调和平均值。
#支持GPU训练,指定显卡序号
CUDA_VISIBLE_DEVICES=0,1 rasa test nlu --cross-validation --folds 5

folds 参数在交叉验证中起到了重要作用,它决定了数据集被分成多少个子集(折)进行交叉验证。具体来说,folds 参数定义了以下几个方面:

  1. 数据划分

:数据集将被分成 folds 个子集。例如,如果 folds 参数设为 5,数据集将被分成 5 个大小相似的子集。

  1. 训练和验证

:在每一次交叉验证中,将选择一个子集作为验证集,剩余的子集作为训练集。这样会进行 folds 次训练和验证,每次使用不同的子集作为验证集,其他子集作为训练集。

  1. 性能评估

:每次训练和验证都会产生一个性能指标,最终的性能评估结果是 folds 次训练和验证结果的平均值。这种方法可以减少因数据划分不同而带来的结果波动,提供更稳定和可靠的模型性能评估。

举例说明

假设你的数据集有 100 个示例,并且你设置 folds 参数为 5:

  1. 数据集会被分成 5 个子集,每个子集有 20 个示例。
  2. 进行 5 次训练和验证,每次选取一个不同的子集作为验证集,其他 4 个子集作为训练集。
  3. 每次训练和验证后,记录模型的性能指标(如准确率、精确率、召回率和 F1 分数)。
  4. 最后,计算 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
    }
  }
  ]

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接