Как определить успех?

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

Точность

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

Точность

Точность - это измерение истинных положительных результатов, деленное на истинные положительные результаты + ложные срабатывания (TP / TP + FP). Поскольку истинные положительные результаты находятся в числителе и знаменателе, ложные срабатывания имеют реальное влияние в этом уравнении. Если у модели много ложных срабатываний, оценка точности будет ниже (хуже), а если у модели мало ложных срабатываний, оценка увеличится (станет лучше). Наилучшей оценкой будет 1, потому что, если бы не было ложных срабатываний, это было бы число, разделенное само на себя, что равнялось бы 1.

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

Отзывать

Напоминание - это измерение истинных положительных результатов, деленное на истинно положительные + ложноотрицательные (TP / TP + FN). Это уравнение похоже на точность, но теперь все дело в ложных отрицаниях. Поскольку ложноотрицательные результаты находятся в знаменателе, если количество ложноотрицательных результатов велико, оценка отзыва будет уменьшаться (ухудшаться), а если количество ложноотрицательных результатов мало, то оценка отзыва увеличится (станет лучше). Оценка безупречного отзыва будет равна 1, поскольку, если бы не было ложноотрицательных результатов, это было бы число, разделенное само на себя.

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

Оценка F1

Точность и отзывчивость - это компромисс, поскольку уменьшение количества ложноотрицательных результатов часто приводит к увеличению количества ложных срабатываний и наоборот. Но что, если вас заботят ложноотрицательные и ложные срабатывания? К счастью для вас, существует счет F1. Оценка F1 рассчитывается как 2 * (точность * отзыв) / (точность + отзыв) и считается балансом точности и отзыва.

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

Оценка F-Beta

Прелесть оценки F1 в том, что ее можно немного изменить, чтобы она стала оценкой F-beta. Оценка F-beta аналогична оценке F1, но позволяет более важным взвешивать точность или отзывчивость. В Scikit-learn есть метод создания оценки F-beta, который очень упрощает настройку. Использование бета-балла более 1 делает больший упор на отзыв. Использование бета-балла менее 1 делает больший упор на точность.

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

Микро и макро расчеты

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

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

Давайте подумаем, что все это значит. Предположим, что в наборе данных с 5 классами один класс плохо запоминается, а остальные довольно хороши. Тогда отзыв макроса все еще будет довольно хорошим, потому что ужасный класс имеет только 1/5 власти над окончательной оценкой. На микро-отзыв будет более драматично влиять плохо работающий класс, поскольку ложноотрицательные результаты одного ужасно предсказанного класса добавят много ложноотрицательных результатов, которые войдут в общий расчет. По этой причине дисбаланс между классами в мультиклассовой задаче лучше улавливать с помощью микро вычислений, чем с помощью макроса. Однако существует также взвешенный макрос, который вычисляет макрос, но взвешивает оценки на основе количества записей для каждого класса, что может привести к чему-то более похожему на микро.

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

Что теперь?

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

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