Метрики оценки для моделей пользовательского распознавания именованных сущностей
Набор данных делится на две части: набор для обучения и набор для тестирования. Набор для обучения используется для обучения модели, а набор для тестирования — для расчета производительности и оценки модели после обучения. Набор для тестирования не представляется модели в процессе обучения, чтобы протестировать ее на новых данных.
Оценка модели автоматически активируется после успешного завершения обучения. Процесс оценки прежде всего применяет обученную модель для прогнозирования определяемых пользователем сущностей по документам из тестового набора, а затем сравнивает результаты с предоставленными тегами данных (которые содержат уже известные значения). Результаты позволяют оценить производительность модели. Для оценки пользовательское распознавание именованных сущностей использует следующие метрики:
Точность: измеряет, насколько точна модель. Представляет собой соотношение между правильно определенными положительными (истинноположительными) результатами и всеми определенными положительными значениями. Метрика точности показывает, сколько из спрогнозированных сущностей правильно помечено метками.
Precision = #True_Positive / (#True_Positive + #False_Positive)
Полнота: измеряет способность модели прогнозировать фактические положительные классы. Это отношение между спрогнозированными истинноположительными результатами и фактически помеченными значениями. Метрика полноты показывает, сколько из прогнозируемых сущностей определено верно.
Recall = #True_Positive / (#True_Positive + #False_Negatives)
F-мера: зависит от точности и полноты. Она необходима при поиске баланса между точностью и полнотой.
F1 Score = 2 * Precision * Recall / (Precision + Recall)
Примечание.
Метрики точности, полноты и показатель F1 вычисляются отдельно для каждой сущности (вычисление на уровне сущностей) и совместно для моделей (вычисление на уровне модели).
Метрики оценки на уровне моделей и сущностей
Метрики точности, полноты и показатель F1 вычисляются отдельно для каждой сущности (вычисление на уровне сущностей) и совместно для моделей (вычисление на уровне модели).
Определения точности, полноты и оценки являются одинаковыми для оценок на уровне сущностей и моделей. Но счетчики истинноположительных, ложноположительных и ложноотрицательных значений могут отличаться. Например, рассмотрим следующий текст.
Пример
Первая сторона этого контракта — John Smith (5678 Main Rd., Frederick, Nebraska). Вторая сторона контракта — Forrest Ray (123-345 Integer Rd., Corona, New Mexico). Также есть Fannie Thomas (7890 River Road, Colorado Springs, Colorado).
Модель, извлекающая сущности из этого текста, может иметь следующие прогнозы:
Объект | Прогноз | Фактический тип |
---|---|---|
Dmitry Gornozhenko | Лицо | Лицо |
Frederick | Лицо | Город |
Forrest | Город | Лицо |
Fannie Thomas | Лицо | Лицо |
Colorado Springs | Город | Город |
Оценка на уровне сущностей для сущности person
Модель будет иметь следующую оценку на уровне сущностей для сущности person:
Ключ | Count | Описание |
---|---|---|
Истинный положительный результат | 2 | Сущности John Smith и Fannie Thomas были правильно спрогнозированы как сущность person. |
Ложный положительный результат | 1 | Сущность Frederick была неправильно спрогнозирована как сущность person, хотя это сущность city. |
Ложный отрицательный результат | 1 | Сущность Forrest была неправильно спрогнозирована как сущность city, хотя это сущность person. |
- Точность:
#True_Positive / (#True_Positive + #False_Positive)
=2 / (2 + 1) = 0.67
- Полнота:
#True_Positive / (#True_Positive + #False_Negatives)
=2 / (2 + 1) = 0.67
- Показатель F1:
2 * Precision * Recall / (Precision + Recall)
=(2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67
Оценка на уровне сущностей для сущности city
Модель будет иметь следующую оценку на уровне сущностей для сущности city:
Ключ | Count | Описание |
---|---|---|
Истинный положительный результат | 1 | Сущность Colorado Springs была правильно спрогнозирована как сущность city. |
Ложный положительный результат | 1 | Сущность Forrest была неправильно спрогнозирована как сущность city, хотя это сущность person. |
Ложный отрицательный результат | 1 | Сущность Frederick была неправильно спрогнозирована как сущность person, хотя это сущность city. |
- Точность =
#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
Вычисление на уровне модели для общей модели
Для всей модели будет выполнена следующая оценка:
Ключ | Count | Описание |
---|---|---|
Истинный положительный результат | 3 | Сущности John Smith и Fannie Thomas были правильно спрогнозированы как сущность person. Сущность Colorado Springs была правильно спрогнозирована как сущность city. Это сумма истинноположительных значений для всех сущностей. |
Ложный положительный результат | 2 | Сущность Forrest была неправильно спрогнозирована как сущность city, хотя это сущность person. Сущность Frederick была неправильно спрогнозирована как сущность person, хотя это сущность city. Это сумма ложноположительных значений для всех сущностей. |
Ложный отрицательный результат | 2 | Сущность Forrest была неправильно спрогнозирована как сущность city, хотя это сущность person. Сущность Frederick была неправильно спрогнозирована как сущность person, хотя это сущность city. Это сумма ложноотрицательных значений для всех сущностей. |
- Точность =
#True_Positive / (#True_Positive + #False_Positive)
=3 / (3 + 2) = 0.6
- Полнота =
#True_Positive / (#True_Positive + #False_Negatives)
=3 / (3 + 2) = 0.6
- Оценка F1 =
2 * Precision * Recall / (Precision + Recall)
=(2 * 0.6 * 0.6) / (0.6 + 0.6) = 0.6
Интерпретация метрик оценки на уровне сущностей
Что означает высокая точность или полнота для определенной сущности?
Отзыв | Точность | Интерпретация |
---|---|---|
Высокая | Высокая | Эта сущность хорошо обрабатывается моделью. |
Низкий | Высокий | Модель не всегда может извлечь эту сущность, но в случае успеха доверительный уровень высокий. |
Высокая | Низкая | Модель также извлекает эту сущность успешно, но доверительный уровень низкий, так как иногда сущность извлекается как другой тип. |
Низкая | Низкая | Этот тип сущности плохо обрабатывается моделью, так как обычно не извлекается. В таком случае доверительный уровень низкий. |
Руководство
После обучения модели вы увидите некоторые указания и рекомендации по улучшению модели. Рекомендуется создать модель с учетом всех рекомендаций.
Набор для обучения содержит достаточно данных: если тип сущности содержит менее 15 помеченных экземпляров в обучающих данных, это может привести к снижению точности из-за того, что модель будет недостаточно обучена. В этом случае можно добавить дополнительные размеченные данные в набор для обучения. Чтобы получить дополнительные рекомендации, перейдите на вкладку Распределение данных.
В наборе для тестирования присутствуют все типы сущностей: если в тестовых данных отсутствуют помеченные экземпляры для типа сущности, проверка модели может быть неполной, поскольку некоторые случаи не охвачены. Чтобы получить дополнительные рекомендации, перейдите на вкладку Распределение данных в наборе для тестирования.
Типы сущностей в наборах для обучения и тестирования сбалансированы. Если смещение выборки приводит к неточному представлению частоты возникновения типа сущности, это может привести к снижению точности из-за того, что модель ожидает, что тип сущности возникает слишком часто или слишком редко. Чтобы получить дополнительные рекомендации, перейдите на вкладку Распределение данных.
Типы сущностей равномерно распределяются между наборами для обучения и тестирования. Если в наборах для обучения и тестирования представлены сущности разных типов, это может привести к снижению точности тестирования из-за того, что обучение и тестирование модели происходит по-разному. Чтобы получить дополнительные рекомендации, перейдите на вкладку Распределение данных.
Неясное различие между типами сущностей в наборе для обучения: если данные для обучения для нескольких типов сущностей схожи, это может привести к снижению точности, так как типы сущностей могут часто быть неправильно классифицированы. Просмотрите следующие типы сущностей и, если они похожи, то их можно объединить. В противном случае добавьте дополнительные примеры, чтобы лучше из различать. Для получения дополнительных рекомендаций можно просмотреть вкладку матрицы неточностей.
Матрица ошибок
Матрица неточностей — это матрица NxN для оценки производительности модели, где N — это число сущностей. Матрица сравнивает ожидаемые метки с метками, прогнозируемыми моделью. Это дает целостное представление о том, насколько хорошо работает модель и какие типы ошибок она делает.
Можно использовать матрицу неточностей для определения сущностей, которые слишком похожи и часто извлекаются ошибочно, так как являются неоднозначными. В этом случае рекомендуется объединять эти типы сущностей. Если это невозможно, попробуйте добавить большее число примеров с тегами для обеих сущностей, чтобы помочь модели различать их.
Выделенная диагональ на изображении ниже отражает правильно предсказанные сущности, где прогнозируемый тег совпадает с фактическим.
Метрики оценки на уровне сущностей и моделей можно вычислить на основе матрицы неточностей:
- Значения по диагонали являются истинноположительными каждой сущности.
- Сумма значений в строках сущности (кроме значений по диагонали) — это ложноположительный результат модели.
- Сумма значений в столбцах сущности (кроме значений по диагонали) — это ложноотрицательный результат модели.
Аналогично,
- Истинноположительный результат модели — это сумма истинноположительных значений для всех сущностей.
- Ложноположительный результат модели — это сумма ложноположительных значений для всех сущностей.
- Ложноотрицательный результат модели — это сумма ложноотрицательных значений для всех сущностей.