Метрики в машинном обучении: precision, recall и не только
Почему я это написал. Долгое время я был бэкэнд разработчиком. Вращался среди коллег и прекрасно их понимал. Но бэкенд нужен и людям, занимающимся машинным обучением. В какой-то момент я попал в их логово. И вот тут я поднял, что вообще не понимаю их язык. Думаю, что не только я оказывался в такой ситуации, поэтому сейчас расскажу всё понятными словами для нормальных людей.
Немного про машинное обучение
ML работает всего с несколькими вещами:
- Данные (фичи)
- Разметка этих данных
- Модель
- Предсказания модели
Приведу пример. Допустим у вас есть яблоня. Каждый год вы ломаете голову, опрыскивать ли её от долгоносика. Решили обучить модель, что она вам предсказывала нашествия долгоносика.
Данные: Допустим, вы знаете только весенние температуры в виде одного числа. (Не важно, что это, допустим, просто средняя температура.) То есть у вас есть одна фича — температура.
Разметка У вас есть журнал по годам, где отмечено, был долгоносик или нет. То есть каждой температуре вы можете сопоставить «правильный» ответ. Обратите внимание, что одной и той же температуре могут соответствовать несколько ответов, они могут быть разными (за разные годы).
Модель Пусть у нас будет модель с одним параметром: пограничной температурой. Модель будет просто говорить «да», если температура выше какой-то черты и «нет» — если ниже. Можно было бы придумать модель с двумя параметрами (она бы смотрела на интервал), или ещё сложнее, но мы сейчас возьмём самую простую, для наглядности.
Предсказания Если применить модель к температурам (фичам), то получим предсказания.
Немного кода
Чтобы было с чем играть, вот вам код. Тут есть и данные, и модель, и всё о чём мы будем говорить.
Если это запустить, то мы получим метрики для разных моделей:
T — это параметр модели. То есть мы получили метрики, фактически, для 10 разных моделей.
Если раскомментировать dump() то будет видна детальная информация.
Сейчас мы со всем разберёмся.
TP, TN, FP, FN и друге буквы
Когда люди начинают жонглировать этими буквами, с непривычки, можно очень легко запутаться и потерять нить. Чтобы всё встало на свои места, нам понадобится ещё несколько букв и пара полезных соотношений.
Давайте посмотрим на входные данные (разметку, фактические наблюдения). Введём две буквы:
- P (positive) — сколько у нас положительных ответов (результатов наблюдений)
- N (negative) — сколько отрицательных ответов
Теперь посмотрим на прогнозы модели. Здесь тоже есть positive и negative, но их сразу же делят на четыре группы:
- все positive-ответы (модель сказала «да») делят на:
- TP (true positive) — модель ответил «да» и угадала
- FP (false positive) — модель ответила «да» и ошиблась
- TN (true negative) — модель ответил «нет» и это было правильно
- FN (false negative) — «нет» и это ошибка
Тут важно проникнуться простыми соотношениями:
Остановитесь тут и подумайте минуту.
Ну и, конечно, ясно что такое TP+FP (это все ответы «да», полученные от модели) и NT+FN (все ответы «нет»).
Ценность метрик
У нас появились первые метрики. Давайте посмотрим, на сколько они полезны.
Метрики нужны, чтобы понять, какая модель лучше. Выше мы видели все метрики для всех моделей. Поглядите на колонки TP , TN , FP , FN .
Видно, что ни одна из этих метрик не позволяет нам выбрать лучшую модель. Например, модель, которая всегда говорит только «да», показывает лучший TP . Это и понятно: везде, где в наблюдениях было «да», наша модель сказала «да». Однако, ясно, что это глупейшая модель.
Аналогично не работают и другие три метрики. Нужно что-то получше.
Accuracy
Первое, что приходит в голову: давайте поделим все правильные ответы на все вообще ответы.
Такая метрика уже лучше, чем ничего, но всё же, она очень плоха. Даже в моём примере (хотя я не подгонял специально числа) видно, что, с одной стороны, разумные модели имеют высокую точность, однако, побеждает по точности просто самая пессимистичная модель.
Вы можете поиграться с данными и посмотреть, как это происходит. Но понять смысл очень просто на другом примере. Допустим вы хотите предсказывать землетрясения (какое-то очень редкое явление). Ясно, что по этой метрике всегда будет побеждать модель, которая даже не пытается ничего предсказывать, а просто говорит всегда «нет». Те же модели, которые будут пытаться говорить когда-то «да», будут иногда ошибаться в позитивных прогнозах и сразу же терять очки.
Поэтому, про эту метрику вы, скорее всего, даже не услышите никогда. Я тут её упомянул только чтобы показать её неэффективность при, кажущейся, логичности.
Precision, recall и их друзья
Лично я чаще всего сталкивался именно с этими словами. При том, что, как мне кажется, это самые неудачные варианты. Я буду приводить альтернативные называния, которые, как мне кажется, на много лучше отражают суть.
Recall aka sensitivity, hit rate, or true positive rate (TPR)
Мне кажется, hit rate и TPR лучше всего отражают суть. В этой метрике мы рассматриваем только P-случаи: когда в реальных наблюдениях было «да». И считаем, какую долю из этих случаев модель предсказала правильно.
Все случаи «нет» мы отбрасываем.
Recall сам по себе довольно бесполезен. Взгляните на результаты для нашей модели: модель, которая всегда тупо говорить «да» — безусловно побеждает. Фактически, recall пропорционален TP , если P — константа (напомню, что это просто количество ответов «да» в наших фактических данных).
У recall есть брат-близнец:
Specificity, selectivity or true negative rate (TNR)
Здесь верны все те же самые оговорки. Специфичность, фактически, пропорциональна TN .
Важно, так же, заметить, что если T и P сильно отличаются (как в примере с землетрясениями), то сравнивать recall и специфичность надо очень осторожно.
Precision aka positive predictive value (PPV)
Какая часть наших предсказаний «да» действительно сбылась:
Недостатки этой метрики аналогичны: она вообще никак не учитывает предсказания «нет». Из наших результатов видно, что побеждает модель, которая почти всегда говорить «нет». Она как бы снижает риск проиграть, выводя большую часть своих ответ за рамки рассмотрения.
У этой метрики есть аналогичный близнец
Negative predictive value (NPV)
Какая часть «нет»-предсказаний сбылась.
И ещё немного метрик
Перечислю кратко и другие метрики. Это далеко не все существующие, а просто аналоги вышеперечисленных, только относительно отрицательных прогнозов.
Miss rate aka false negative rate (FNR)
Fall-out aka false positive rate (FPR)
False discovery rate (FDR)
False omission rate (FOR)
И что же со всем этим делать
Как вы уже видели, каждая из этих метрик рассматривает только какое-то подмножество предсказаний. Поэтому их эффективность очень сомнительна.
Однако, их очень часто используют для двух вещей:
- Во-первых, по ним можно судить о характере модели: какая часть предсказаний ей даётся лучше, а в чём она слаба.
- Во-вторых, из этих метрик можно собирать что-то полезное.
На втором я хотел бы остановиться в некотором философском ключе.
Давайте задумаемся, а что значит «одна модель лучше другой»? Единого ответа тут нет.
В нашем примере с долгоносиком всё зависит от наших приоритетов.
Если мы хотим ни в коем случае не потерять урожай, то нам надо максимизировать TP любой ценой. Фактически, в предельном случае, мы можем выкинуть любые модели и просто опрыскивать дерево химикатами всегда.
Если мы хотим минимизировать применение ядов, то нам надо максимизировать TN . В предельном случае, нам просто надо никогда не опрыскивать дерево: потеря урожая для нас не так страшна, как безосновательное применение ядохимикатов.
В реальной же жизни, мы ищем некоторый компромисс. Во многих случаях он может быть совершенно чётко сформулирован, с учётом цен на химикаты, стоимости урожая, репутационных потерь и прочего.
Не редко, люди придумывают собственные метрики. Но есть и готовые, пригодные во многих случаях.
F1-score
Это комбинация recall и precision:
Но мне кажется, поведение этой функции становится гораздо понятней, если записать её так:
То есть, это гармоническое среднее.
Максимальный F1-score мы получим, если и recall, и precision достаточно далеки от нуля. Он позволяет найти некое компромиссное решение, фактически, между максимизацией TP по разным шкалам.
Это не единственная возможная метрика. И у неё, как вы видите, тоже есть чёткий фокус, а значит и недостатки. Однако, даже её достаточно, чтобы среди наших моделей выиграла та, у которой пограничная температура равна 4. Давайте ещё раз взглянем на сравнение всех моделей:
И вот детализация по этой конкретной модели (с T=4):
Вы можете взять мой код, раскомментировать функцию dump() и посмотреть детализацию по всем моделям.
Видно, что ответ разумный, но выработан с фокусом на TP . То есть на то, чтобы больше перебдеть. Возможно, это как раз то, что нужно. А может и нет. Поэтому и существует ещё множество других метрик, но основа у них одинаковая.
Precision и recall. Как они соотносятся с порогом принятия решений?
Недавно, постигая азы Машинного Обучения и изучая классификацию, я наткнулся на precision и recall. Диаграммки, которые часто вставляют, объясняя эти концепции, мне не помогли понять отличия между ними. Но чудо, я придумал объяснение, которое понятно мне, и я надеюсь, что оно поможет кому-нибудь из вас на пути изучения ML (возможно это объяснение кто-то придумал до меня) .
Перед тем как начинать, давайте представим горку песка, но в этом песке ещё есть песчаные камни, они ведь тоже являются песком, так? Также в этом песке есть некоторый мусор. Наша задача — просеять песок. Его мы можем просеять максимально чисто, без единого мусора, но он будет не весь (комки песка не попадут), либо просеять весь песок, но мусор тоже может попасть в нашу кучу. С этим пониманием давайте двигаться дальше.

Что такое precision и recall?

Это та самая диаграммка
Чтобы понять, что эта диаграмма означает, в пример приводят мальчика, который сторожит овец (пусть это будет Вася) и волка, который нападает на овец ночью. Вася любит пугать жителей ночью и будит всех со словами: “Волк!”. Но также бывает, что волк на самом деле приходит ночью. Так вот, когда Вася кричит и волк на самом деле появился, то это True Positive (TP). Когда Вася кричит и волка нет, то это False Positive (FP). Когда Вася не кричит и волк пришёл, то это False Negative (FN). А когда Вася не кричит и волк не пришел, то это True Negative (TN).
Другими словами, Positive и Negative — это предсказания нашей модели (изображена ли на этой картинке кошка), а True и False- это оценка того, правильно ли определила модель наш класс (действительно ли на этой картинке кошка). Крик Васи — предсказание модели. Пришёл Волк — то, что на самом деле произошло, и относительно чего дается оценка (True или False) крику нашего Васи.
Precision (точность) — отношение TP к TP + FP. Это доля объектов, названными классификатором положительными и при этом действительно являющимися положительными. Возвращаясь к нашему объяснению про кучу песка из начала, оно измеряет, насколько чистый песок стал после просеивания (TP — просеянный песок, FP — мусор). Но стоит помнить, что песок попал не весь, потому что комки песка не смогли попасть через сетку. Или же то, насколько Вася был честным, когда кричал о нападении Волка.
Recall (Полнота) — отношение TP к TP + FN. Это то, какую долю объектов положительного класса из всех объектов положительного класса нашёл алгоритм. Оно же измеряет, насколько весь песок попал в кучу, то есть комки песка тоже должны попасть, но загвоздка в том, что мусор тоже может попасть в нашу кучу. (TP — просеянный песок, FN — непросеянный песок). Или же то, насколько внимательным был Вася и замечал нападение Волка.
В этом и есть суть этих метрик, с ростом recall уменьшается precision, и наоборот.

Как это соотносится с порогом принятия решений?
Порог принятия решений используется, когда нужно определить, к какому классу отнести наш образец. К примеру, наша модель, которая прогнозирует принадлежность картинки к коту или собаке, дала для определённого образца вероятность 75% того, что это собака. Если мы поставим порог принятия решений 60%, соответственно, алгоритм выдаст, что это собака, ведь 75 больше 60. Но если мы поставим порог принятия решений в 80%, то алгоритм причислит образец к кошке.
Порог принятия решений можно представить как линию, на одной стороне которой будет одно значение, а на другой иное.
Для выяснения того, как порог принятия решений соотносится с precision и recall, можно представить его как ширину нашей сетки. При высоком пороге сетка будет узкая, увеличится precision, то есть будет попадать только чистый песок, но уменьшится recall, то есть не весь песок будет попадать в кучу (помним, что комки слишком большие, чтобы пройти через сетку). При низком пороге сетка будет широкая, будет попадать весь песок, включая комки, но также будет попадать мусор, соответственно, recall увеличится, а precision упадёт.

Надеюсь этой статьей я хоть немного помог приблизиться к интуитивному пониманию precision и recall. Настоятельно рекомендую прочитать другие источники и не ограничиваться только этой статьей, я не эксперт и тоже только учусь. Поэтому, если я в чем-то ошибаюсь, то буду рад если вы дадите знать это в комментариях. Это была моя первая статья, надеюсь еще скоро увидимся, cheers!
chekrizh/talk_about_ml
В рамках образовательного проекта Мамкин Data Scientist был проведен опрос, на основании которого образовался ресурс, содержащий распространенные вопросы из собеседований мира Data Science.
Список постоянно обновляется, пользователи голосуют за популярные вопросы, дают свои трактовки и ответы в комментариях.
Этот репозиторий представляет собой лонгрид, содержащий выборку из этих вопросов и мои аннотации, не претендующие на полное раскрытие темы, но призванные передать суть ответа простыми словами или натолкнуть на его более глубокое рассмотрение.

Вопросы для интервью по специальности Data Science
В чем отличие градиентного бустинга над деревьями от случайного леса? Какие базовые параметры настраиваются?
Оба алгоритма являются ансамблями, но реализуют разные подходы: бустинг и беггинг соотвествтенно.
Ансамбль — набор из моделей, решающих одну задачу, результаты работы которых компонуются так, чтобы повысить эффективность и точность, в сравнении с прогнозом одной модели.
Бустинг — подход, при котором модели обучаются последовательно.
Эта техника использует идею о том, что следующая модель будет учится на ошибках предыдущей. Они имеют неравную вероятность появления в последующих моделях, и чаще появятся те, что дают наибольшую ошибку. Обучающая выборка на каждой итерации определяется, исходя из ошибок классификации на предыдущих итерациях. Из-за того, что предсказатели обучаются на ошибках, совершенных предыдущими, требуется меньше времени для того, чтобы добраться до реального ответа. Плюсы: быстрый и точный Минусы: переобучается и не параллелится
Беггинг — подход, при котором несколько базовых моделей обучаются параллельно на различных подвыборках, при чем выборка может быть не только срезом строк, но и содержать в себе лишь некотурую часть столбцов (признаков) выбранных случайно. Результаты обучения всех моделей усредняются.
Эффективность бэггинга достигается благодаря тому, что базовые алгоритмы, обученные по различным подвыборкам, получаются достаточно различными, и их ошибки взаимно компенсируются при голосовании, а также за счёт того, что объекты-выбросы могут не попадать в некоторые обучающие подвыборки. Случайный лес — беггинг, в основе которого лежат модели деревьев решений. Плюсы: довольно точен, устойчив к выбросам Минусы: очень большой размер моделей, которые получаются в результате
Безовые параметры зависят от типа решаемой задачи (классификация, регрессия) и выбранной базовой модели, в общем случае это количество таких моделей, их ключевые ппраметры (вроде глубины дерева для деревьев решений) и праметры, отвечающие за раелизацию самого подхода (например как разбивать выборки при беггинге).
Картинки взяты отсюда, крутая статья, рекомендую к прочтению
Как вычислить минимальный размер выборки для проведения A/B теста?
Для того чтобы понять, какой объем выборки нам нужен, нам нужно зафиксировать некоторые вещи. Во-первых, минимальный размер эффекта, который мы хотим померить. То есть для нашей метрики, насколько большие отклонения от показателя, который мы предполагаем, сохранится по умолчанию, если наши изменения вообще никак не влияют на пользователей, какой размер вот этого отклонения мы хотим замечать в эксперименте. Эта штука называется «размер эффекта». Далее, следующий показатель, который надо зафиксировать, — это допустимые вероятности ошибок первого и второго рода.
В A/B-тестах, как правило, мы проверяем гипотезы о том, что никакие наши примененные изменения не повлияли на пользователей вообще никак, и проверяем ее против альтернативы, что как-то повлияли. Ошибкой первого рода в этой ситуации будет отвержение неверной нулевой гипотезы, то есть принятие не влияющих на самом деле на пользователей изменений. Ошибка второго рода — это, наоборот, отклонение действительно хороших и влияющих на пользователей изменений. Вот мы должны, для того чтобы рассчитать необходимый объем выборки, зафиксировать допустимые вероятности ошибок первого и второго рода. В статистике, как правило, используется вероятность ошибки первого рода — 0,05, а вероятность ошибка второго рода — 0,2. В вашем конкретном эксперименте стоимости ошибок первого и второго рода могут быть какими-то существенно разными, поэтому часто может оказаться выгодно вручную выбрать эти пороги на вероятности ошибок первого и второго рода. Наконец, когда вы зафиксировали размер эффекта и допустимой вероятности ошибок, вы можете поступить следующим образом: вы берете название метода, который вы планируете использовать для сравнения ваших контрольных групп и экспериментальных групп, например Z-критерий или T-критерий, и вы используете калькулятор мощности этого критерия. Вообще, для всех статистических критериев между собой связаны сложными взаимосвязями несколько величин: тип альтернативы, размер эффекта, размер выборки и допустимые вероятности ошибок первого и второго рода. Если вы какие-то из этих величин фиксируете, вы можете рассчитать оставшиеся. То есть если вы фиксируете конкретный критерий и фиксируете конкретный тип альтернативы, вероятности ошибок первого и второго рода и минимальный интересующий вас размер эффекта, вы можете вычислить объем выборки, который для этого нужен. Для того чтобы это сделать, нужно использовать калькулятор мощности. Вы просто гуглите его, и для каждого конкретного критерия вы легко найдете десятки различных реализаций, в том числе не требующих никакого знания программирования.
Как объяснить бизнесу, что значат ошибки I и II рода?

Ошибку первого рода часто называют ложной тревогой, ложным срабатыванием или ложноположительным срабатыванием — например, анализ крови показал наличие заболевания, хотя на самом деле человек здоров, или металлодетектор выдал сигнал тревоги, сработав на металлическую пряжку ремня. Слово «положительный» в данном случае не имеет отношения к желательности или нежелательности самого события.
Ошибку второго рода иногда называют пропуском события или ложноотрицательным срабатыванием — человек болен, но анализ крови этого не показал, или у пассажира имеется холодное оружие, но рамка металлодетектора его не обнаружила (например, из-за того, что чувствительность рамки отрегулирована на обнаружение только очень массивных металлических предметов).
Какой функционал оптимизируется в задаче линейной регрессии? Как записать это в векторной записи?
Осторожно! Баян!

Напомню, что линейная регрессия — это метод восстановления зависимости между двумя переменными. Её оптимизация сводится к максимизации прадоподобия, что эквивалентно минимизации среднеквадратичной ошибки (MSE), которая широко используется в реальных задачах.
Виды метрик машинного обучения?
(я так понимаю речь идет о метриках качества)
За шпорами сюда и сюдаКлассификация:
- accuracy
- precision
- recall
- F-measure
- AUC-ROC и AUC-PR
- Logistic Loss (Данная метрика нечасто выступает в бизнес-требованиях, но часто — в задачах на kaggle. Крутая статья )
Регрессия
- MSE
- R 2 (Коэффициент детерминации)
- MAE
- Квантильная ошибка (нормальных мануалов не нашел, в двух словах — сильнее штрафует за недопрогноз, чем за перепрогноз)
Кластеризация (почитать можно тут)
- Adjusted Rand Index (ARI)
- Adjusted Mutual Information (AMI)
- Homogenity
- Completeness
- V-measure
- Silhouette
Как объяснить бизнесу метрику машинного обучения?

Больше графиков, красивая диграмма, три раза сказать «business value», можно подключать мимику.
На этот вопрос нет истинно верного ответа, я хотел написать о использовании интерпретируемых моделей, где на язык бизнеса можно перенести веса признаков в сетях/линейных алгоритмах или feature importance моделей на базе деревьев решений. Или упомянуть о силе аллегорий.. но не уверен, что таким вещам тут место. Но раз уж есть мемасик, то вопрос определенно стоит включить.
Mean/median/mode — что это?
(Рекомендую к прочтению книгу В. Савельева «Статистика и котики»)
Mean — среднее значение, полученное путем деления суммы элементов на их количество.
Median — медиана это число в середине выборки чисел: половина данных находится ниже этого значения, а половина выше.
Mode — мода, соответствующая значению, которое встречается чаще всего.Что такое интерквантили?
Интерквартиль (IQR — одна из мер разброса или рассеяния данных. Он равен разности между верхним и нижним (первым и третьим) квартилями. Другими словами IQR — это ширина интервала, содержащего средние 50% выборки. Таким образом, чем меньше IQR, тем меньше рассеяние. Положительной чертой этого показателя является его устойчивость (робастность), т.е. на него слабо влияют выбросы.
Что такое boxplot?
boxplot, ящик с усами, диаграмма размаха — график, использующийся в описательной статистике, компактно изображающий одномерное распределение вероятностей. (прим. часто помогает визуально определить выбросы)
Выглядит следующим образом:

Что такое скользящее среднее?
Скользящее среднее — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний и выделения основных тенденций или циклов.
Простое скользящее среднее — арифметическое среднее за заданный период.
Рассмотрим на примере количества коммитов в гитхаб. 5-ти дневное среднее скользящее на сегодня высчитывается путем прибавления пяти количеств коммитов за предыдущие дни (т.е. сегодняшнее плюс четыре прошлых) и разделением их на 5. Т.е. если статистика была такой: 9, 8, 8, 9, 10, то простое среднее скользящее будет равно (9+8+8+9+10)/5=8,8. Следовательно, если я сегодня сделал 10 коммитов, среднее скользящее числа коммитов в день будет равно 8,8.Экспоненциальное среднее скользящее — считает более поздние данные более важными, за счет чего более быстро реагирует на изменения. Просчет значения экспоненциального среднего скользящего более сложный: вычисление значения 5-ти дневного экспоненциального среднего скользящего на сегодня производится по следующей формуле: EMA[k, n] = EMA[k-1, n]+(2/(n+1))·(P-EMA[k-1, n]), где
- EMA[k, n] — экспоненциальное скользящее среднее периода n на момент k
- P — текущая цена
(*прости, друг, тут вроде нельзя использовать Latex для формул. Когда-нибудь я перепишу их красиво, но это не точно)
На самом деле не обязательно помнить формулу наизусть, главное понимать смысл, который заключается в том, что, при просчете экспоненциального среднего скользящего, более ранние значения имеют меньшее значение, а более поздние — большее значение.
Взвешенное скользящее среднее, как и экспоненциальное, тоже придает более поздним данным больше «веса», но оно делает это более выражено и проще. При просчете 5-ти дневного взвешенного скользящего среднего, мы придаем сегодняшнему количеству коммитов пятикратный вес, вчерашнему — четырехкратный, позавчерашнему — трехкратный и т.д., а потом делим сумму всех произведений на сумму добавленного веса. Т.е. (1·8+2·8+3·9+4·10+5·11)/(1+2+3+4+5) = 146/15 = 9,73.
Формула расчета проста: каждое значение, входящее в просчет взвешенного скользящего среднего, необходимо умножить на его порядковый номер, а потом разделить всю эту сумму на сумму порядковых номеров.Объяснить, что такое ROC/AUC

ROC/AUC — это метрика, позволяющая оценить качество бинарной классификации,более информативная, нежели accuracy и показывающая, как часто мы ошибаемся и как мы ошибаемся. Задача бинарной классификации подразумевает два возможных класса, 0 и 1.
Например, мы хотим понять, будет ли в какой-то день дождь (класс 1) или нет (класс 0). И ошибиться мы можем двумя способами: * сказать что дождя не будет, а он пойдет (False Negative/ложнонегативное предсказание) * сказать что дождь пойдет, а его не будет (False Positive/ложнопозитивное предсказание) Если мы сказали что дождь пошел и угадали — это True Positive/ верноположительное предсказание.
Roc-кривая — это график зависимости True Positive от False Positive, а roc_auc — площадь под этой кривой. (между синеньким и зелененьким)

Что такое F-score и зачем его используют?
Посмотри предыдущий вопрос, про roc_auc, где описано что такое False Negative и False Positive.
F-score, F-мера — еще одна метрика оценки качества бинарной классификации, так же позволяющая определить как часто мы ошибаемся.
Почему это важно? Мы уже определили, что ошибки бывают двух видов: ложноположительные и ложноотрицательные. И в случае если один из этих типов ошибок нам более страшен — мы постараемся его не допускать, даже в ущерб ошибкам другого типа.
Например тебе нужно определить порок сердца у человека. Тут лучше лишний раз допустить False Positive, и предположить болезнь у здорового человека, нежели упустить больного и не заметить ее. Метрика, которую мы бы максимизировали в этом случае называется recall.
Если мы пытаемся как можно реже делать ложноположительные предсказания — (например это слишком дорого, как если мы ищем где копать нефть) — то мы максимизируем метрику precision.
F-мера же представляет собой гармоническое среднее между precision и recall. Она стремится к нулю, если любой из этих параметров стремится к нулю. Эту метрику мы хотим видеть высокой если нам важен баланс.
Что значит AUC <0.5? Что с ним делать?
В случае бинарной классификации (когда у нас есть только два класса), AUC — эквивалентна вероятности, что классификатор присвоит большее значение классу 1, чем классу 0, а если AUC < 0.5, то можно просто перевернуть выдаваемые значения классификатором потому, что у тебя противоположная ситуация.
About
Сборник ответов на распространенные вопросы из собеседований по Data Science