Не всегда просто знать, какие показатели использовать

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

Верно против ложного и положительного против отрицательного

Прежде чем начать с метрик, давайте рассмотрим несколько терминов, которые мы будем использовать для определения этих метрик [1].

Дадим следующие определения:

  1. Опухоль - Положительный класс
  2. Нет опухоли - отрицательный класс

Итак, положительное и отрицательное - это классы, определенные нами. Истина означает, что предсказание и фактический класс совпадают. Ложь означает, что прогноз и фактический класс не совпадают.

Теперь мы можем взглянуть на следующие четыре термина:

  1. Истинно положительный (TP): это означает, что прогноз был положительным, а фактический класс также был положительным.
  2. Ложноположительный (FP): это означает, что прогноз был положительным, а фактический класс - отрицательным.
  3. Истинно отрицательный (TN): это означает, что прогноз был отрицательным и фактический класс также был отрицательным.
  4. Ложноотрицательный (FN): это означает, что прогноз был отрицательным, а фактический класс - положительным.

Точность

Это очень популярный показатель, который показывает, какой процент из всех прогнозов верен.

Accuracy = Total correct predictions / Total predictions [2]

or

Accuracy = (TP + TN) / (TP + FP + TN + FN)

Примечание: Total predictions = TP + FP + TN + FN и Total correct predictions = TP + TN.

Это довольно простой способ измерения производительности. Однако это может ввести в заблуждение для наборов данных, где наблюдается высокий классовый дисбаланс. Предположим, у нас есть 100 образцов, из которых 10 - опухоли, а 90 - не опухоли. Классификатор правильно классифицировал 89 не опухолей, а только одну из настоящих опухолей.

Для этого примера: TP: 1, FP: 1, TN: 89, FN: 9

Получим точность 90%. Может показаться, что модель работает очень хорошо. Однако на самом деле он работает очень плохо для этого класса опухолей. Ложноотрицательный результат в медицинском приложении может стоить жизни. Однако точность давала ложное представление о высокой производительности. Следующие метрики, которые мы рассмотрим, помогут в этих ситуациях и дадут лучшее понимание производительности классификатора.

Точность

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

Precision = TP/ (TP + FP)

Точность попыток ответить на вопрос: какая доля положительных идентификаций была на самом деле правильной? [4]

Если мы продолжим предыдущий пример,

Точность = 1 / (1 + 1) = 0,5

Точность составляет 0,5, что означает, что классификатор работает так же хорошо, как и наугад.

Примечание. Модель со значением точности 1 не будет давать ложных срабатываний.

Отзывать

Отзыв определяется как доля извлеченных релевантных экземпляров [3]. Это также известно как чувствительность. Это отношение истинных положительных результатов к общему количеству положительных результатов в наборе, то есть сумма истинных положительных и ложно отрицательных результатов.

Recall = TP/ (TP + FN)

Точность попыток ответить на вопрос: какая доля фактических положительных результатов была определена правильно? [4]

Если мы продолжим предыдущий пример,

Напомним = 1 / (1 + 9) = 0,1

Отзыв равен 0,1, что означает, что классификатор может извлечь только 10% экземпляров опухоли, а 90% будут ошибочно классифицированы как неопухолевые. Это очень низкая производительность из-за требований к приложению для обнаружения опухолей.

Примечание. Модель со значением отзыва 1 не будет иметь ложноотрицательных результатов.

F1-счет

Это показатель, который объединяет значения точности и отзыва для оценки производительности. Оценка F1 определяется как среднее гармоническое значение точности и запоминания [5].

F1-score = 2 * (precision * recall ) / (precision + recall )

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

В приведенном выше примере

F1-оценка = 2 * 0,5 * 0,1 / (0,5 + 0,1) = 0,16667

Мы приблизили оценку F1 к отзыву, что является более низким из двух показателей. Таким образом, высокий показатель F1 указывает на то, что классификатор обладает высокой точностью, а также отзывчивостью.

Матрица путаницы

В машинном обучении для классификации матрица неточностей (также называемая матрицей ошибок) - это таблица, которая позволяет визуализировать эффективность классификации [6]. Каждая строка представляет экземпляры в фактическом классе, а столбцы представляют экземпляры в прогнозируемом классе или наоборот.

Примечание. Убедитесь, что вы правильно прочитали документацию по используемой библиотеке, чтобы знать, какие записи представляют строки и столбцы. Для scikit-learn строки представляют истинные метки, а столбцы - предсказанные метки [7].

Для бинарной классификации матрица неточностей может быть четко представлена ​​с использованием значений TP, FP, TN и FN.

Итак, для нашего примера матрица путаницы:

Глядя на эту матрицу путаницы, мы можем ясно увидеть, какова производительность классификатора. Идеальная матрица путаницы будет иметь только диагональные элементы и не будет недиагональных элементов, то есть FP и FN будут равны нулю. В этом случае значения точности и отзыва будут равны 1. Хороший способ визуализировать эту матрицу - это тепловая карта. Это нагреет места, где есть более крупные записи, т.е. сделают эти записи яркими, а другие будут более мягкими. Если мы наблюдаем яркую диагональную линию, мы быстро узнаем, что матрица неточности верна. Это более значимо для матрицы путаницы в многоклассовой классификации.

Просмотр матрицы позволяет быстро узнать, сколько образцов было правильно классифицировано по каждому классу, а также распределение неправильно классифицированных образцов. Затем вы можете проверить, не выделяется ли что-нибудь. Подобно тому, как конкретный класс сильно ошибочно классифицируется как другой класс, вы можете проверить образцы вручную и посмотреть, все ли в порядке. Может что-то не так с образцами. Или вы понимаете условия, при которых классификатор не работает.

Заключение

В этой статье мы рассмотрели несколько показателей классификации, которые полезны для анализа производительности классификатора. Мы начали с концепций истинного против ложного и положительного против отрицательного. Затем увидел точность как метрику и заметил, что она вводит в заблуждение для несбалансированных наборов данных. Затем мы рассмотрели точность, отзыв и F1-оценку как показатели, которые работают с несбалансированными наборами данных. Наконец, мы рассмотрели матрицу неточностей, которая является очень полезным табличным представлением для визуализации производительности классификатора. Надеюсь, эта статья вам помогла. Если вы используете какие-либо другие инструменты или показатели, поделитесь ими со мной! Спасибо, что прочитали статью. Следите за более интересными и содержательными статьями. P.S. Если вы хотите узнать больше о показателях, вы можете прочитать https://towardsdatascience.com/the-5-classification-evaluation-metrics-you-must-know-aa97784ff226 Рахул Агарвал.

использованная литература

[1] https://developers.google.com/machine-learning/crash-course/classification/true-false-positive-negative

[2] https://developers.google.com/machine-learning/crash-course/classification/accuracy

[3] https://en.wikipedia.org/wiki/Precision_and_recall

[4] https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall

[5] https://en.wikipedia.org/wiki/F-score

[6] https://en.wikipedia.org/wiki/Confusion_matrix

[7] https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html