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

Недавно я работал над проектом по науке о данных, направленным на прогнозирование вероятности беременности женщины. Этот проект был частью моей стажировки (я закончил программу MS in Data Science в Университете Сан-Франциско), и он очень понравился мне как маме и специалисту по данным. На мой взгляд, у него была очень благородная цель - на раннем этапе связаться с женщинами, которые могут забеременеть, и предложить им различные образовательные программы. Считаю этот проект очень своевременным, учитывая, что в США, к сожалению, один из самых высоких показателей смертности от беременности среди развитых стран, и эта цифра только растет.

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

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

Это похоже на приличную точность! Но дает ли наша модель достойные результаты? Сложно сказать ... Давайте рассмотрим другой пример: представьте, что наша модель предсказывает, что беременной женщины НЕТ. Даже в этом случае мы получаем точность 90%!

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

Еще один удобный способ визуализировать работу алгоритмов классификации (обычно в задачах обучения с учителем) - это посмотреть на матрицу неточностей. По сути, это таблица, которая позволяет сравнивать истинные метки с предсказаниями вашей модели классификации, сообщая об истинных положительных результатах (TP), истинных отрицательных результатах (TN), ложных положительных результатах (FP) и ложных отрицательных результатах (FN).

Здесь все становится сложным. Ложно-положительный результат относится к небеременной женщине, отмеченной как беременная, или наоборот? Какое отношение эти показатели имеют к производительности модели?

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

Шаг 1. Сформулируйте нулевую и альтернативную гипотезы!

На самом деле это самый важный шаг, который часто принимают как должное и по какой-то причине пропускают. На мой взгляд, это единственная причина, по которой трудно следовать статье в Википедии: не зная Нуль, трудно понять, что стоит за истинными / ложными положительными и отрицательными. Чтобы определить ошибки типа I и II, вам необходимо точно знать, какое значение Null вы тестируете.

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

Шаг 2. Определите ключевые компоненты.

Что вы относите к положительному классу? Беременность? Совершаете мошенническую транзакцию? Есть эффект от приема лекарства? Имеете ненулевой эффект от экономической политики?

Это значительно упрощает формулировку четырех компонентов матрицы неточностей. Продолжим пример с прогнозом беременности.

Истинно-положительный: беременная женщина правильно обозначена моделью.

Верно-отрицательный: небеременный человек правильно считается небеременным.

Ложноположительный: небеременный человек ошибочно определяется как беременный
Ложноотрицательный: беременный человек ошибочно определяется как небеременный.

Шаг 3. Нарисуйте матрицу неточностей и определите ошибки типа и типа II

Теперь вы готовы нарисовать матрицу путаницы:

Объединение шагов 1 и 2 вместе позволяет нам (почти) легко идентифицировать ошибки типа I и типа II.

Что такое ошибка типа I? Это отклонение Нулевого значения, когда оно действительно истинно. Вам известен ноль из шага 1, и вы также определили положительный / отрицательный классы на шаге 2. Таким образом, ошибка типа I в этом случае соответствует ложному положительному результату. В нашем примере мы прогнозируем, что женщина принадлежит к положительному классу (отклоняя Null), то есть что она беременна, хотя на самом деле она не беременна (Null истинно). Ошибка типа II - ложноотрицательный - мы не можем отклонить значение Null (мы предполагаем, что она принадлежит к отрицательному классу, т.е. не беременна), хотя на самом деле она беременна.

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

Точность - это доля правильно помеченных положительных экземпляров в общем количестве прогнозируемых экземпляров класса Positive, которая представлена ​​суммой истинно положительных и Ложноположительный (т.е. мы смотрим на класс Positive с точки зрения прогнозов модели)

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

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

Если вы не уверены в том, какой метрике - точности или отзывчивости - отдать приоритет, тогда рекомендуется попытаться максимизировать оценку F1, которая является гармоническим средним из двух:

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