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

Прежде чем погрузиться в понятие точности и припоминания, позвольте мне кратко рассказать вам, что означают ошибки типа I и типа II.

Ошибки типа I и типа II

В одно прекрасное утро Джеку позвонили. На линии был незнакомец. Джек, все еще потягивая свежезаваренный утренний кофе, едва мог понять, что его ждет. Незнакомец сказал: «Поздравляю, Джек! Вы выиграли в лотерею 10 миллионов долларов! Мне просто нужно, чтобы вы предоставили мне данные своего банковского счета, и деньги будут зачислены на ваш банковский счет правильно… »

Каковы шансы, что это произойдет? Что делать Джеку? Что бы вы сделали?

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

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

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

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

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

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

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

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

Компромисс

Это довольно интуитивно понятно. Если вам нужно вспомнить все, вам придется продолжать генерировать неточные результаты, что снижает вашу точность. Чтобы проиллюстрировать это, представьте себе случай цифрового мира (опять же, amazon.com?), Где есть ограниченное пространство на каждой веб-странице и чрезвычайно ограниченное внимание клиента. Следовательно, если покупателю будет показано много нерелевантных результатов и очень мало релевантных результатов (для достижения высокой степени отзыва), покупатель не будет постоянно просматривать каждый продукт, чтобы наконец найти тот, который он или она намеревается купить. и, вероятно, переключится на Facebook, Twitter или Airbnb, чтобы спланировать свой следующий отпуск. Это огромная потеря, и, следовательно, для базовой модели или алгоритма потребуется исправление, чтобы сбалансировать отзыв и точность.

То же самое происходит, когда модель пытается добиться максимальной точности.

Существует ли более простой показатель?

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

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

Итак, каковы основные выводы?

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

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

Ссылки

Precision-Recall (scikit-learn), Взаимосвязь между Precision-Recall и ROC-кривыми, Вероятностная интерпретация точности, отзыва и F -Score, с последствиями для оценки