{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

Простыми словами про метрики в ИИ. Классификация. Precision, Recall, F-score, ROC-AUC

Привет, vc.ru! Меня зовут Александр Троицкий, я автор канала AI для чайников, и я запускаю серию коротких статей по метрикам качества моделей для машинного обучения!

В этой статье я расскажу как считаются Precision, Recall, F-score, ROC-AUC с живыми примерами.

Мы выяснили, что из Confusion Matrix часто рассчитывают метрики качества моделей, при этом Accuracy применяют редко (хоть она и очень популярна у многих заказчиков, не шарящих в машинном обучении). Что еще можно рассчитать на основе этой матрицы?

Confusion matrix с примером про слона

Precision & Recall

Precision = TP / (TP + FP) и показывает долю объектов, названных нашей моделью положительными и при этом действительно являющимися положительными.

Recall = TP / (TP + FN) и показывает нам какую долю объектов положительного класса из всех объектов положительного класса нашел алгоритм.

Эти метрики адекватнее показывают качество модели, чем Accuracy, но имеют ряд недостатков. Например, вы можете изменять результат обоих меток просто двигая уровень отсечения по вероятности отношения к классу.

Если вы любите покопаться в Excel таблице, то вот Excel с формулами и примерами.

F-score

Иногда во всех этих метриках можно запутаться, а алгоритмы машинного обучения устроены таким образом, что чаще всего умеют оптимизировать какую-то одну метрику качества. Именно поэтому стали придумывать показатели, которые характеризуют одновременно и Precision и Recall, и называются эти показатели F-скором. F-скоров бывает несколько типов, я вам расскажу про самый базовый расчет, который называется F1-скор:

F1 = 2 * (Precision * Recall) / (Precision + Recall)

Таким образом F1 показывает одновременно насколько хорошо модель находит объекты положительного класса из всех объектов положительного класса и какая доля из тех, кого алгоритм назвал положительным классом, действительно являются положительным классом.

ROC-AUC

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

Например, у нас есть 10 человек, из них купит слона 4 человека, соответственно 6 человек слона не купят. Мы нашей моделью определяем вероятность покупки слона каждым из этих людей.

Итак, у нас есть вероятность покупки слона и исход события (таблица выше).

Посчитав количество положительных исходов (а их тут 4) и отрицательных исходов (их тут 6 штук), нарисуем табличку высотой 4 и шириной 6. Площадь таблички получается 21.

Полученная табличка

Расположим вероятность покупки слона от самой большой до самой маленькой. Будем идти сверху вниз по вероятности: если купил слона, то ставим 1 на клеточку выше (начинаем с точки 0,0), если не купил, то ставим 1 на клеточку правее. Правее всех полученных единичек ставим 1 до конца матрицы. Итак наши шаги будут выглядеть следующим образом:

Давай попробуем сделать первый шаг вверх:

Делая шаг из условной точки (0,0), мы попадаем в точку (0,1), потому что в первое же предсказание угадали с его исходом.

Делаем второй шаг снова вверх, потому что мы угадали с нашим предсказанием снова. Получаем:

Делаем шаг из точки (0,1), мы попадаем в точку (0,2), потому что второй раз подряд снова угадали

На третий раз мы не угадали с предсказанием, поэтому идем вправо, получаем матрицу:

На четвертый раз снова угадываем! Идем единичкой наверх.

Используя дальше такую логику получаем матрицу:

Ставим ниже единичек - единички, получаем:%:

Суммируя единички, мы получаем 19. Делим 19 на общее количество ячеек в матрице (4 * 6), получается:

ROC-AUC = 19 / 24 = 79%

Заключение

В следующей статье я продолжу рассказывать про метрики ИИ, в том числе коснусь метрик регрессии: MSE, RMSE, MAR, R-квадрат, MAPE, SMAPE.

Если вам интересно знать про ИИ и машинное обучение больше, чем рядовой человек, но меньше, чем data scientist, то подписывайтесь на мой канал в Телеграм. Я пишу редко, но по делу: AI для чайников. Подписывайтесь!

0
Комментарии
-3 комментариев
Раскрывать всегда