【问题标题】:How are P, R, and F scores calculated in spaCy CLI train NER?spaCy CLI 训练 NER 中的 P、R 和 F 分数是如何计算的?
【发布时间】:2020-08-26 02:27:29
【问题描述】:

我正在对 NER 使用 spaCy CLI train 命令,其中train_path 设置为训练数据集(训练集),dev_path 设置为评估数据集(测试集)。控制台中的打印输出显示了 NER Precision、Recall 和 F 分数。

但是,我不清楚分数是如何计算的。它们是来自模型预测的训练集(train-scores)还是来自测试集(test-scores)的分数?

我想确定在哪个 epoch 之后停止训练以防止过度拟合。目前,在 60 个 epoch 之后,Loss 仍然略有下降,而 Precision、Recall 和 F-score 仍然略有增加。在我看来,模型可能会记住训练数据,并且 P、R 和 F 分数是在训练集上计算的,因此会不断改进。

据我所知,训练的一个很好的停止点应该是在测试分数再次开始下降之前,即使训练分数不断增加。所以我想随着时间(时期)比较它们。

我的问题是:

  1. 在训练 train-scores 或 test-scores 时,分数会显示在控制台中吗?
  2. 以及如何访问另一个?
  3. 如果是训练分数,使用的测试集 (dev_path) 是什么?

【问题讨论】:

    标签: spacy named-entity-recognition


    【解决方案1】:

    loss 是从训练示例中计算出来的,作为在training loop 中调用nlp.update() 的副作用。但是,所有其他性能指标都是在开发集上由callingScorer 计算的。

    据我所知,训练的一个很好的停止点应该是在测试分数再次开始下降之前,即使训练分数不断增加

    是的,我同意。所以看看spacy train 结果,这将是(训练)损失仍在减少,而(开发)F-score 再次开始下降的时候。

    目前,经过 60 个 epoch 后,Loss 仍在略微下降,而 Precision、Recall 和 F-score 仍在略微增加。

    所以看起来你可以多训练几个 epoch :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2018-05-06
      • 1970-01-01
      • 2020-05-06
      • 2020-10-16
      • 2021-04-08
      相关资源
      最近更新 更多