Проблемы классификации — одна из наиболее часто используемых категорий постановки задач в машинном обучении и науке о данных. Когда мы исследуем реальное приложение, в котором машинное обучение и наука о данных используются техническими гигантами, такими как Google, Apple, Tesla, Microsoft, Facebook и т. д., мы обнаружим, что 9 из 10 формулировок задачи являются формулировками задачи классификации. Из-за его популярности каждый день появляется много новых методов, которые бросают вызов ранее существовавшим методам.

НО НА КАКИХ ОСНОВАНИЯХ?

Ответ прост, по соображениям точности. Исследовательские работы также публикуют работу и сравнивают результаты своих новых подходов с уже проверенными исследовательскими работами. Поэтому всякий раз, когда мы говорим, что создали модель машинного обучения, первый вопрос, который возникает у нас: «Какова точность вашей модели?».

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

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

  1. Точность и ее ограничения
  2. Матрица путаницы
  3. Точность и отзыв
  4. F1-счет
  5. Специфика
  6. Кривая рабочих характеристик приемника (ROC)
  7. Площадь под кривой (AUC)

Давайте начнем разбираться в каждом методе в деталях.

Точность

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

Точность = ((Количество правильных прогнозов)/(Общее количество прогнозов))*100

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

from sklearn.metrics import accuracy_score
#Y_pred is the predicted target variable and 
#Y_act is the true target variable. Then,
print("Accuracy = ", accuracy_score(Y_act, Y_pred))

Ограничения точности

Хотя это очень широко используемый показатель, он имеет ряд серьезных ограничений. Предположим, вы обучили модель классифицировать изображения по двум классам: "Кошка" или "Без кошки". Вы протестировали свою модель на 100 изображениях, содержащих кошек, и ваша модель все время давала значение, соответствующее классу «Кошка». Таким образом, точность приведенных выше формул ((100)/(100)*100) = 100%. Ух ты!!!

Но что, если ваша модель всегда предсказывает только класс «Кошка»?

Вот в чем загвоздка. Если бы вы протестировали свою модель на более чем 100 изображениях без кошек, то точность была бы ((0)/(100)*100) = 0%, но вы уже везде заявили, что ваша модель достигла 100% точности. Таким образом, мы не должны судить о модели только по показателю точности, поскольку она хорошо работает со сбалансированным набором данных, но не с несбалансированным.

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

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

Рассмотрим на примере четыре термина: истинно положительный (TP), истинно отрицательный (TN), ложноположительный (FP) и ложноотрицательный (FN),которые составляют матрицу путаницы. Все показатели эффективности будут определены с использованием этих терминов.

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

Истинный положительный результат (TP): это когда наша модель говорит, что яблоко свежее, и это яблоко на самом деле было свежим.

Истинно отрицательный (TN):этокогда наша модель говорит, что яблоко старое, и это яблоко действительно было старым.

Ложное срабатывание (FP): это когда наша модель машинного обучения говорит, что яблоко свежее, но на самом деле это яблоко было старым. Этот случай широко известен как Ошибка первого рода.

Ложноотрицательный результат (FN):это когда наша модель машинного обучения говорит, что яблоко старое, но на самом деле это яблоко было свежим. Этот случай широко известен как Ошибка типа II.

from sklearn.metrics import confusion_matrix
y_true = ["fresh", "old", "old", "fresh", "fresh", "fresh"]
y_pred = ["fresh", "old", "fresh", "old", "fresh", "old"]
arr = confusion_matrix(y_true, y_pred, labels=["fresh", "old"])
print("Confusion Matrix = ",arr)
tn, fp, fn, tp = arr.ravel()

Теперь, если нам нужно переопределить термин точности, то

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

Точность и отзыв

Теперь предположим, что есть сценарий, в котором у нас есть 100 яблок. Мы предсказали эти типы яблок, используя наши две разные модели классификации; они разделили яблоки на «свежие» и «старые». Когда мы наблюдали предсказания, мы обнаружили,

Модель 1: TP = 68, FN = 22, FP = 0, TN = 10.

Модель 2: TP = 90, FN = 0, FP = 4, TN = 6.

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

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

Примечание.Отзыв также называется Чувствительность и Истинный положительный показатель (TPR).

F1-счет

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

Специфика

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

РПЦ

Если мы знакомы с методологией бинарной классификации, мы должны знать, что наша модель предсказывает вероятность. В нашем предыдущем примере предположим, что модель получает изображение яблока и предсказывает, что оно «свежее» с вероятностью X%. Если значение X больше порогового значения, мы говорим, что модель предсказала яблоко как «свежее»; в противном случае мы говорим, что модель предсказала это яблоко как «старое». Но что, если мы изменим этот порог?

Мы наносим истинную положительную скорость (TPR)/отзыв/чувствительность по оси Y и ложноположительную частоту (FPR) по оси X для различных пороговых значений. Мы можем четко сказать, что Модель 3 лучше, чем Модель 2, а Модель 2лучше, чем Модель 1, поскольку мы увеличиваем истинный положительный показатель.

AUC

Предположим, мы построили случайную модель для классификации наших яблок на свежие и старые. Вероятность выполнения классификации составляет 50%, и, следовательно, линия x=y на изображении выше имеет площадь под кривой, равную 0,5. Если бы мы построили идеальную модель, то наша модель классифицировала бы наши яблоки со 100% вероятностью, и здесь AUC = 1. Таким образом, мы можем сказать, что «Чем больше площадь под кривой, тем лучше модель».

Для лучшего понимания мы можем взглянуть на изображение ниже.

Возможные вопросы интервью

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

  1. Какие показатели оценки следует использовать для вашего проекта?
  2. С какими проблемами могут столкнуться термины точности?
  3. Что такое матрица путаницы и почему она считается основой для всех других показателей?
  4. Всегда ли предпочтительнее иметь лучший результат F1, чем лучшую точность или отзыв?
  5. Что такое график ROC, имя оси X и Y? Примечание. Об этом часто спрашивают.

Заключение

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

Наслаждайтесь обучением! Наслаждайтесь алгоритмами!