Привет, ребята!!

Итак, большинство из вас решали задачи, основанные на задачах классификации, верно? Когда модель построена, какую метрику вы часто используете. ТОЧНОСТЬ не так ли? Ну, мы часто говорим, что точность составляет 99%, поэтому модель должна работать отлично. Однако сталкивались ли вы когда-нибудь с такой ситуацией, когда даже после достижения очень высокой точности ваша модель не работает хорошо, давая прогнозы позже?

Я сталкивался с этой проблемой несколько раз, и угадайте, в чем может быть проблема? Несбалансированные данные!!

Что такое несбалансированные данные?

Давайте возьмем пример набора данных: Обнаружение мошенничества с кредитными картами.

Если вы заметили, у нас есть 2 84 807 точек данных, но из них только 492 случая мошенничества, тогда как 2 84 315 случаев являются подлинными.

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

Почему точность не является хорошей мерой для несбалансированных наборов данных?

Прежде всего, что такое ТОЧНОСТЬ? По сути, это говорит нам о количестве правильных прогнозов из всех прогнозов.

Теперь возвращаясь к исходному вопросу, допустим, ваша модель не может классифицировать ни одно из обнаружений мошенничества. Тем не менее он будет иметь точность 99,83% (284315/284807). Сумасшедший, верно? Вы будете думать, что ваша модель работает очень хорошо, тогда как на самом деле она будет работать ужасно, когда вы ее протестируете. Таким образом, в этой ситуации точность определенно не является хорошей мерой. Как это решить?

У нас есть и другие показатели, которые мы можем использовать: точность, отзыв, баллы F1.

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

Что такое матрица путаницы?

Матрица путаницы — это таблица, которая суммирует производительность алгоритма классификации. Это выглядит примерно так:

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

Так как здесь мы делаем предсказание мошенничества:

Подделка: положительный класс, Подлинное: отрицательный класс

Нам нужно знать несколько терминов:

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

True Negative: транзакции, предсказанные как подлинные, являются подлинными на самом деле (в этом примере TN = 56826).

Ложное срабатывание: транзакции, которые были предсказаны как мошенничество, но на самом деле являются подлинными (в этом примере FP = 32).

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

Точность:

Это в основном количество правильных прогнозов из всех случаев. Итак, в этом случае:

Точность = (56828+65)/(56828+65+37+32) = 0,9987, т.е. 99,87%

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

Точность:

Сколько из всех прогнозов, которые являются положительными (т.е. мошенничество), на самом деле являются положительными.

Точность = 65/(65+32) = 0,67, т. е. 67 %

Напомнить:

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

Отзыв = 65/(65+37) = 0,6372, т.е. 63,72%

Теперь мы определенно хотели бы максимально уменьшить количество ложноположительных и ложноотрицательных результатов, тем самым увеличив точность и отзыв. У нас есть еще одна метрика, которая объединяет эти две вместе:

Оценка F1:

Сочетает точность и полноту вместе как гармоническое среднее.

Оценка F1 = (2*0,6372*0,67)/(0,6372+0,67) = 0,6532, т. е. 65,32 %

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

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

Не стесняйтесь комментировать ниже, если у вас есть какие-либо сомнения.

Всего наилучшего и удачного обучения..!!