Про базовые метрики в задачах классификации в машинном обучении
Классификация — это про то, как определяется класс объекта. Например: фродер или нет, показать товар или не показать, дать кредит или отказать.
Классы могут быть бинарными, мультиклассовыми, со смещением и без. Используется в антифроде, поиске, скоринге, рекомендациях, модерации и почти в любом ML-продукте.
Когда обучается модель, необходимо понять, насколько хорошо она работает.
Обычно начинают с accuracy — самой простой и часто вводящей в заблуждение метрики.
1️⃣ Accuracy (доля верных предсказаний)
Представим задачу разметки клиентов как фродеров или нет.
В выборке всего 5% настоящих фродеров.
Если модель просто будет отвечать, что все не фродеры, она окажется права в 95% случаев. Accuracy = 95%.
На первый взгляд — отличный результат.
🚫 Но такой результат можно получить, не делая ничего. В задачах с перекосом классов accuracy — почти бесполезна.
Accuracy = (TP + TN) / (TP + FP + FN + TN)
2️⃣ Precision (точность)
Отражает долю корректных среди всех предсказанных как положительные.
В нашем случае отражает долю реальных фродеров среди всех, кого модель определила как фродеров
Если модель указывает на пользователей как фродеров, а по факту из 10 таких пользователей 6 действительно фродеры, а 4 — нет, то:
Precision = 6 / (6 + 4) = 0.6
👍 Иначе говоря — насколько обоснованно модель выдала положительный класс.
При низком precision модель тревожит нормальных пользователей — что критично для антифрода, медицины, рекомендаций.
Precision = TP / (TP + FP)
3️⃣ Recall (полнота)
Показывает, какую долю реальных фродеров удалось обнаружить.
Если в выборке 20 настоящих фродеров, и модель нашла 6 из них, то:
Recall = 6 / (6 + 14) = 0.3
😱 Это означает, что 70% фродеров модель пропустила.
Проще говоря — если модель кого-то не заметила, это может дорого обойтись.
Recall = TP / (TP + FN)
🤔 Про TP, FP, FN, TN в этой задаче классификации
TP — модель предсказала фрод и это правда
FP — модель предсказала фрод, но это ошибка
FN — модель сказала не фрод, но на самом деле это фрод
TN — не фрод и модель это правильно предсказала
4️⃣ Трейд-офф между Precision и Recall
🙂 При высоком пороге модель выдает положительный класс только при большой уверенности. Precision возрастает, но recall снижается — модель пропускает многих.
🪫 При низком пороге модель ловит почти всех фродеров — recall высокий, но увеличивается число ошибок (FP), и precision падает. Поэтому часто используют F1-score — гармоническое среднее между precision и recall.
F1 = 2 * (Precision * Recall) / (Precision + Recall)
Статьи:
[ссылка_1], [ссылка_2], [ссылка_3], [ссылка_4]
Ставьте 🔥, если пост был полезным, делитесь в комментариях своими мыслями, а я выложу следующий пост про другие метрики
Классификация — это про то, как определяется класс объекта. Например: фродер или нет, показать товар или не показать, дать кредит или отказать.
Классы могут быть бинарными, мультиклассовыми, со смещением и без. Используется в антифроде, поиске, скоринге, рекомендациях, модерации и почти в любом ML-продукте.
Когда обучается модель, необходимо понять, насколько хорошо она работает.
Обычно начинают с accuracy — самой простой и часто вводящей в заблуждение метрики.
1️⃣ Accuracy (доля верных предсказаний)
Представим задачу разметки клиентов как фродеров или нет.
В выборке всего 5% настоящих фродеров.
Если модель просто будет отвечать, что все не фродеры, она окажется права в 95% случаев. Accuracy = 95%.
На первый взгляд — отличный результат.
🚫 Но такой результат можно получить, не делая ничего. В задачах с перекосом классов accuracy — почти бесполезна.
Accuracy = (TP + TN) / (TP + FP + FN + TN)
2️⃣ Precision (точность)
Отражает долю корректных среди всех предсказанных как положительные.
В нашем случае отражает долю реальных фродеров среди всех, кого модель определила как фродеров
Если модель указывает на пользователей как фродеров, а по факту из 10 таких пользователей 6 действительно фродеры, а 4 — нет, то:
Precision = 6 / (6 + 4) = 0.6
👍 Иначе говоря — насколько обоснованно модель выдала положительный класс.
При низком precision модель тревожит нормальных пользователей — что критично для антифрода, медицины, рекомендаций.
Precision = TP / (TP + FP)
3️⃣ Recall (полнота)
Показывает, какую долю реальных фродеров удалось обнаружить.
Если в выборке 20 настоящих фродеров, и модель нашла 6 из них, то:
Recall = 6 / (6 + 14) = 0.3
😱 Это означает, что 70% фродеров модель пропустила.
Проще говоря — если модель кого-то не заметила, это может дорого обойтись.
Recall = TP / (TP + FN)
🤔 Про TP, FP, FN, TN в этой задаче классификации
TP — модель предсказала фрод и это правда
FP — модель предсказала фрод, но это ошибка
FN — модель сказала не фрод, но на самом деле это фрод
TN — не фрод и модель это правильно предсказала
4️⃣ Трейд-офф между Precision и Recall
🙂 При высоком пороге модель выдает положительный класс только при большой уверенности. Precision возрастает, но recall снижается — модель пропускает многих.
🪫 При низком пороге модель ловит почти всех фродеров — recall высокий, но увеличивается число ошибок (FP), и precision падает. Поэтому часто используют F1-score — гармоническое среднее между precision и recall.
F1 = 2 * (Precision * Recall) / (Precision + Recall)
Статьи:
[ссылка_1], [ссылка_2], [ссылка_3], [ссылка_4]
Ставьте 🔥, если пост был полезным, делитесь в комментариях своими мыслями, а я выложу следующий пост про другие метрики