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

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

  • Точность
  • Матрица путаницы
  • Точность
  • Отзывать
  • Оценка F1
  • Кривая AUC-ROC

Давайте рассмотрим набор данных по раку груди и попытаемся понять показатели, основанные на классификаторе, созданном для прогнозирования рака груди.

Точность

Точность классификатора рассчитывается как отношение общего количества правильно предсказанных выборок к общему количеству выборок.

Метрика точности может использоваться для оценки классификатора, когда набор данных является сбалансированным. Метрика точности не должна использоваться, если набор данных несбалансирован. Давайте рассмотрим набор данных с двумя целевыми классами, содержащий 100 образцов, из которых 95 образцов принадлежат к классу 1, а 5 образцов относятся к классу 2. Когда мы пытаемся построить классификатор для указанного выше набора данных, классификатор будет смещен к классу 1 и будет предсказывать все образцы как образцы класса 1. Это приведет к точности 95%, что неверно. Во избежание этой ошибки метрики точности следует использовать только сбалансированный набор данных.

Теперь давайте посмотрим на код, чтобы получить точность классификатора:

Output:
Accuracy of the classifier is: 0.9473684210526315

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

Матрица неточностей - это N-мерная квадратная матрица, где N представляет общее количество целевых классов или категорий. Матрица неточностей может использоваться для оценки классификатора всякий раз, когда набор данных несбалансирован. Давайте рассмотрим проблему бинарной классификации, то есть количество целевых классов равно 2. Типичная матрица путаницы с двумя целевыми классами (скажем «Да» и «Нет») выглядит так:

В матрице неточностей есть четыре важных термина

  1. Истинно-положительные результаты (TP): Это случаи, когда предсказанное «Да» действительно относилось к классу «Да».
  2. Истинно отрицательные (TN): это случаи, когда предсказанное «Нет» на самом деле принадлежало к классу «Нет».
  3. Ложные срабатывания (FP): это случаи, когда предсказанное «Да» действительно относилось к классу «Нет».
  4. Ложноотрицательные (FN): Это случаи, когда предсказанное «Нет» на самом деле принадлежало к классу «Да».

Теперь давайте посмотрим на код, чтобы сгенерировать и построить матрицу путаницы для нашего классификатора рака груди.

Output:
[[39  2]
 [ 4 69]]

Из приведенной выше матрицы путаницы:

  • Истинные положительные результаты (TP): 69
  • Ложные срабатывания (FP): 2.
  • True Negatives (TN): 39.
  • Ложно-отрицательные (FN): 4

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

Точность = (TP + TN) / (TP + FP + TN + FN)

Точность нашего классификатора: (69 + 39) / (69 + 39 + 2 + 4) = 0,947 = 94,7%.

Точность (или положительное прогнозное значение)

Точность - это соотношение истинных положительных результатов (TP) к сумме истинных положительных результатов (TP) и ложных положительных результатов (FP).

Давайте рассмотрим набор данных с двумя целевыми классами (скажем, положительным и отрицательным), тогда точность говорит нам, из общего числа предсказанных положительных значений, сколько было действительно положительных. Следует использовать точность в зависимости от варианта использования. Возьмем пример использования обнаружения спама. Если наша модель определяет письмо как спам, которое на самом деле не является спамом, то пользователь может пропустить важное письмо, т.е. здесь следует уменьшить количество ложных срабатываний. Итак, в этом случае нам нужно использовать точность в качестве метрики для измерения качества нашего классификатора.

Теперь давайте посмотрим на код, чтобы вычислить показатель точности для нашего классификатора рака груди:

Output:
Precision Score of the classifier is: 0.971830985915493

Отзыв (или чувствительность, или истинно положительный рейтинг)

Напоминание - это отношение истинных положительных результатов (TP) к сумме истинных положительных результатов (TP) и ложных отрицательных результатов (FN).

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

Теперь давайте посмотрим на код, чтобы вычислить показатель отзыва для нашего классификатора рака груди:

Output:
Recall Score of the classifier is: 0.9452054794520548

Оценка F1

Показатель F1 следует использовать, когда для варианта использования важны как точность, так и отзыв. Оценка F1 - это среднее гармоническое значение точности и запоминания. Он находится между [0,1].

Оценка F1 выводится из оценки F Beta Score. Оценка F Beta - это взвешенное среднее гармоническое значение точности и запоминания.

  • Если важны как ложноположительные (FP), так и ложноотрицательные (FN), тогда β = 1.
  • Если важен ложноположительный результат (FP), тогда β находится между 0 и 1.
  • Если важен ложноотрицательный (FN), то β ›1.

Теперь давайте посмотрим на код, чтобы вычислить оценку f1 для нашего классификатора рака груди:

Output:
F1 Score of the classifier is: 0.9583333333333334

Кривая AUC-ROC

Кривая AUC-ROC - это показатель производительности, который используется для измерения производительности модели классификации при различных пороговых значениях. ROC - это кривая рабочих характеристик приемника, а AUC - это площадь под кривой. Чем выше значение AUC (Площадь под кривой), тем лучше наш классификатор предсказывает классы. AUC-ROC в основном используется в задачах двоичной классификации.

Кривая ROC строится между истинно положительной скоростью (TPR) и ложноположительной скоростью (FPR), то есть TPR по оси y и FPR по оси x. AUC - это площадь под кривой ROC. Отличный классификатор имеет значение AUC около 1, тогда как неэффективный классификатор имеет значение AOC около 0. Классификатор с показателем AOC 0,5 не имеет возможности разделения классов.

Теперь давайте посмотрим на код, чтобы вычислить и построить график ROC AUC для нашего классификатора рака груди:

Output:
AUC of the classifier is: 0.9769462078182426

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

Вы можете найти меня: LinkedIn, GitHub