#spacy #named-entity-recognition
#spacy #распознавание именованных объектов
Вопрос:
Я использую команду spaCy CLI train для NER с train_path
набором обучающих данных (train-set) и dev_path
набором оценочных данных (test-set). Распечатка в консоли показывает мне меньшую точность, отзыв и F-оценку.
Однако мне не ясно, как были рассчитаны оценки. Являются ли они оценками из модели, предсказывающей в наборе поездов (train-scores) или из набора тестов (test-scores)?
Я хочу определить, после какой эпохи прекратить обучение, чтобы предотвратить переобучение. В настоящее время после 60 эпох потери все еще немного уменьшаются, а точность, отзыв и F-оценка все еще немного увеличиваются. Мне кажется, что модель может запоминать обучающие данные и что оценки P, R и F вычисляются в наборе обучающих данных и, таким образом, продолжают улучшаться.
Насколько мне известно, хорошая точка остановки в обучении была бы прямо перед тем, как результаты тестов снова начнут падать, даже если результаты обучения продолжают расти. Поэтому я хотел бы сравнить их с течением времени (эпохи).
Мои вопросы:
- Отображаются ли оценки в консоли при обучении train-scores или test-scores?
- И как получить доступ к другому?
- Если это оценка поезда, для чего используется набор тестов (
dev_path
)?
Ответ №1:
loss
Вычисляется из обучающих примеров как побочный эффект вызова nlp.update()
в цикле обучения. Однако все остальные показатели производительности вычисляются в наборе разработчиков путем вызова Scorer
.
Насколько мне известно, хорошая точка остановки в обучении была бы прямо перед тем, как результаты тестов снова начнут падать, даже если результаты обучения продолжают расти
Да, я согласен. Итак, глядя на spacy train
результаты, это будет, когда (обучающие) потери все еще уменьшаются, в то время как (dev) F-оценка снова начинает уменьшаться.
В настоящее время после 60 эпох потери все еще немного уменьшаются, а точность, отзыв и F-оценка все еще немного увеличиваются.
Похоже, вы можете тренироваться еще несколько эпох 🙂