Метрики оценки

Набор данных делится на две части: набор для обучения и набор для тестирования. Набор для обучения используется для обучения модели, а набор для тестирования — для расчета производительности и оценки модели после обучения. Набор для тестирования не представляется модели в процессе обучения, чтобы протестировать ее на новых данных.

Оценка модели автоматически активируется после успешного завершения обучения. Процесс оценки прежде всего применяет обученную модель для прогнозирования определяемых пользователем классов по документам из тестового набора, а затем сравнивает результаты с предоставленными тегами данных (которые содержат уже известные значения). Результаты позволяют оценить производительность модели. Для оценки пользовательская классификация текста использует следующие метрики:

  • Точность: измеряет, насколько точна модель. Представляет собой соотношение между правильно определенными положительными (истинноположительными) результатами и всеми определенными положительными результатами. Метрика точности показывает, сколько из спрогнозированных классов правильно помечено метками.

    Precision = #True_Positive / (#True_Positive + #False_Positive)

  • Полнота: измеряет способность модели прогнозировать фактические положительные классы. Это отношение между спрогнозированными истинноположительными результатами и фактически помеченными значениями. Метрика полноты показывает, сколько из прогнозируемых классов определено верно.

    Recall = #True_Positive / (#True_Positive + #False_Negatives)

  • F-мера: зависит от точности и полноты. Она необходима при поиске баланса между точностью и полнотой.

    F1 Score = 2 * Precision * Recall / (Precision + Recall)

Примечание.

Показатели точности, полноты и F-меры вычисляются отдельно для каждого класса (вычисление на уровне класса) и для всей моделей (вычисление на уровне модели).

Метрики оценки на уровне модели и класса

Определения точности, полноты и оценки являются одинаковыми для оценок на уровне класса и модели. Однако число истинноположительных, ложноположительных и ложноотрицательных результатов различается, как показано в следующем примере.

В следующих разделах используется следующий пример набора данных:

Документ Фактические классы Спрогнозированные классы
1 action, comedy comedy
2 действие действие
3 romance romance
4 romance, comedy romance
5 comedy действие

Вычисление на уровне класса для класса action

Ключ. Count Описание
Истинный положительный результат 1 Документ 2 был правильно классифицирован как action.
Ложный положительный результат 1 Документ 5 был ошибочно классифицирован как action.
Ложный отрицательный результат 1 Документ 1 не классифицирован как action, хотя должен был.

Точность = #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

Вычисление на уровне класса для класса comedy

Ключ. Count Описание
Истинноположительный результат 1 Документ 1 был правильно классифицирован как comedy.
Ложный положительный результат 0 Нет документов, которые были бы ошибочно классифицированы как comedy.
Ложноотрицательный результат 2 Документы 5 и 4 не классифицированы как comedy, хотя должны были.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 2) = 0.33

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.67) / (1 + 0.67) = 0.80

Вычисление на уровне модели для общей модели

Ключ. Count Описание
Истинный положительный результат 4 Документы  1, 2, 3 и 4 были правильно классифицированы в прогнозе.
Ложный положительный результат 1 Документ 5 был классифицирован неверно.
Ложный отрицательный результат 2 Документы 1 и 4 были неправильно классифицированы в прогнозе.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 4 / (4 + 1) = 0.8

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 4 / (4 + 2) = 0.67

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.8 * 0.67) / (0.8 + 0.67) = 0.73

Примечание.

Для моделей классификации с одной меткой количество ложноотрицательных и ложноположительных результатов всегда равно. Пользовательские модели классификации с одной меткой всегда прогнозируют один класс для каждого документа. Если прогноз является неправильным, то число ложноположительных результатов в прогнозируемом классе увеличивается на единицу, и число ложноотрицательных результатов увеличивается на единицу, а общее число ложноположительных и ложноотрицательных результатов для модели всегда будет равно. При классификации с несколькими метками дело обстоит иначе, так как неверный прогноз одного из классов документа считается ложноотрицательным результатом.

Интерпретация метрик оценки на уровне класса

Что означает высокая точность или полнота для определенного класса?

Отзыв Точность Интерпретация
Высокая Высокая Этот класс идеально обрабатывается моделью.
Низкий Высокий Модель не всегда может предсказать этот класс, но если она его выбирает, уровень достоверности высокий. Это может быть вызвано тем, что этот класс недостаточной представлен в наборе данных, поэтому стоит скорректировать распределение данных.
Высокая Низкая Модель прогнозирует этот класс хорошо, но с низкой достоверностью. Это может быть вызвано тем, что этот класс избыточно представлен в наборе данных, поэтому стоит скорректировать распределение данных.
Низкая Низкая Этот класс плохо обрабатывается моделью, так как редко прогнозируется, а если прогнозируется, то с низким уровнем достоверности.

В моделях пользовательской классификации текстов могут возникать как ложноотрицательные, так и ложноположительные результаты. Необходимо рассмотреть, как каждый из них повлияет на общую систему, и тщательно обдумать сценарии, в которых модель будет игнорировать правильные прогнозы и распознавать неверные прогнозы. В зависимости от сценария для оценки производительности модели лучше использовать или точность, или полноту.

Например, если сценарий включает в себя обработку запросов в службу поддержки, прогнозирование неверного класса может привести к тому, что запрос будет направлен неправильному отделу или команде. В этом примере рекомендуется сделать систему более чувствительной к ложноположительным результатам, и тогда точность будет более полезной метрикой для оценки.

Другой пример: если в вашем сценарии предполагается классифицировать сообщение электронной почты как "Важно" или "Спам", из-за неверного прогноза вы можете пропустить важное сообщение, если оно помечено как "Спам". Однако если спам помечается как Важно, можно проигнорировать сообщение. В этом примере рекомендуется сделать систему более чувствительной к ложноотрицательным результатам, и тогда полнота будет более полезной метрикой для оценки.

Если вы хотите оптимизировать модель для сценариев общего назначения или если точность и полнота важны одинаково, можно использовать F-меру. Оценки являются субъективными и зависят от вашего сценария и условий приемки. Не существует универсальной метрики, которая подходит для каждого сценария.

Руководство

После обучения модели вы увидите некоторые указания и рекомендации по улучшению модели. Рекомендуется создать модель с учетом всех рекомендаций.

  • Набор для обучения содержит достаточно данных: если тип класса содержит менее 15 помеченных экземпляров в обучающих данных, это может привести к снижению точности из-за того, что модель будет недостаточно обучена.

  • В наборе для тестирования присутствуют все типы классов: если в тестовых данных отсутствуют помеченные экземпляры для типа класса, проверка модели может быть неполной, поскольку некоторые случаи не охвачены.

  • Типы классов в наборах для обучения и тестирования сбалансированы. Если смещение выборки приводит к неточному представлению частоты возникновения типа класса, это может привести к снижению точности из-за того, что модель ожидает, что тип класса возникает слишком часто или слишком редко.

  • Типы классов равномерно распределяются между наборами для обучения и тестирования. Если в наборах для обучения и тестирования представлены классы разных типов, это может привести к снижению точности тестирования из-за того, что обучение и тестирование модели происходит по-разному.

  • Четкое различие между типами классов в наборе для обучения: если данные для обучения для нескольких типов классов схожи, это может привести к снижению точности, так как типы классов могут часто быть неправильно классифицированы.

Матрица ошибок

Важно!

Матрица неточностей недоступна для проектов классификации по нескольким меткам. Матрица неточностей — это матрица NxN для оценки производительности модели, где N — это число классов. Матрица сравнивает ожидаемые метки с метками, прогнозируемыми моделью. Это дает целостное представление о том, насколько хорошо работает модель и какие типы ошибок она делает.

Матрицу неточностей можно использовать для определения классов, которые слишком похожи и часто извлекаются ошибочно, так как являются неоднозначными. В этом случае рекомендуется объединять эти классы. Если это невозможно, попробуйте добавить к большему числу документов метки обоих классов, чтобы помочь модели различать их.

Все правильные прогнозы расположены по диагонали таблицы, поэтому легко визуально проверить таблицу на предмет наличия ошибок прогнозирования, так как они будут представлены значениями за пределами диагонали.

A screenshot of an example confusion matrix.

Метрики оценки на уровне классов и моделей можно вычислить на основе матрицы неточностей:

  • Значения по диагонали являются истинноположительными каждого класса.
  • Сумма значений в строках класса (кроме значений по диагонали) — это ложноположительный результат модели.
  • Сумма значений в столбцах класса (кроме значений по диагонали) — это ложноотрицательный результат модели.

Аналогично,

  • Истинноположительный результат модели — это сумма истинноположительных значений для всех классов.
  • Ложноположительный результат модели — это сумма ложноположительных значений для всех классов.
  • Ложноотрицательный результат модели — это сумма ложноотрицательных значений для всех классов.

Следующие шаги