TGViewer
Матчасть Матчасть @matchast · 881 subscribers
Post #222 676
Для затравки отвечу на один из вопросов из чатика t.me/bigdata_ru. Там ситуация была такая: надо предсказывать вероятность очень редкого события (мошенничества, или редкой болезни, или поломки механизма, я уж не знаю). И событие мало того что редкое, а ещё и нестабильное: в какие-то периоды его 1.5% от популяции, в другие - 0.2%. Вопрос, как в таких условиях сравнивать качество разных предсказательных моделей или одной модели в разные периоды?

Правильный ответ - конечно же, по ROC AUC. Практически все другие популярные метрики классификации основаны на присвоении "жёстких" меток: если предсказанная вероятность больше порога, предсказываем "единичку" (событие), если меньше - предсказываем "нолик" (отсутствие события), дальше считаем, сколько предсказанных единиц и ноликов совпали с реальными, и как-то упаковываем в одно число. И это плохо.

Самая популярная метрика - accuracy (точность), или просто доля правильных ответов. В таких несбалансированных задачах, как наша, эта метрика бесполезна: можно предсказать 100% нулей и получить точность 99.8%, и этот бесполезный прогноз трудно переплюнуть даже сложной моделькой.

Более внимательные метрики - recall (полнота), то есть доля верно предсказанных единиц среди всех настоящих единиц, и precision (по-русски тоже точность🙈), то есть доля верно предсказанных единиц среди всех предсказанных (!) единиц. Если предсказать слишком много единиц, упадёт точность, а если предсказать слишком мало - упадёт полнота, поэтому в принципе с этой парой метрик можно работать при несбалансированных классах. Как, кстати, и с их усреднением, которое зовётся F1-мера. Но они таки завязываются на фиксированный заранее выбранный порог, и если вдруг доля единиц в популяции резко скакнут, то и значения этих метрик скакнут, даже если предсказательная модель не изменилась. И это не очень ок.

Зато метрика ROC AUC к пропорции классов нечувствительна ни-ско-леч-ко, потому что вместо использования отдельно взятого порога, разделяющего предсказанные нули от единиц, она делает усреднение по ВСЕМ ВОЗМОЖНЫМ порогам.

Проще всего понять ROC AUC так: это вероятность того, что для наблюдения, случайно выбранного из всех единичек, скор будет выше, чем для наблюдения, случайно выбранного из всех ноликов. Если модель идеально отличает нули от единиц, то это будет происходить всегда, и auc будет 100%. Если модель вообще не отличает их, это будет проиходить в 50% случаев. Для типичной модели - полезной, но неидеальной - число будет где-то между. И от того, сколько именно единиц и нулей было в штуках, это число не зависит.
More from @matchast
  1. Sep 10, 2024Классный хабр от tech_priestess про внутреннюю размерность фигур и пространств эмбеддингов…
  2. Sep 4, 2024Почему почти у всех полезных матриц маленький ранг? В нашей с вами жизни матрицы малого ра…
  3. Sep 5, 2022Ищем в нашу команду Mathshub талантливых инструкторов в сфере machine learning! Кто мы? Ma…
  4. Aug 11, 2022photo post
  5. Aug 8, 2022Представляю бесплатный интенсив из 20 занятий по питону и математике для начинающих. Орган…
  6. Jul 18, 2022Слева: линейная, изотоническая, и сглаженная изотоническая регрессии. Справа: в зависимост…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →