Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»
1. Выбираем метрику оценки
качества модели
Или как подружить менеджера с data-scientist’ом
Роман Чеботарев
Архитектор решений Advanced Analytics, КРОК
DataFest2, Москва
2. Проблема
• Data scientist часто получает формулировку задачи с метрикой
ее качества…
• … которая в реальности берется исходя из common sense
• … которой нет («А спрогнозируй-ка мне <..> !»)
• Результат работы алгоритма / модели – вероятностный,
выбирая разные пороги, получаем разные результаты
• Очень часто именно от пороговых значений зависит итоговое
качество работы решения
4. Пример
• Можем анализировать отклик сонара и построить
модель классификации «минерал vs. не_минерал»
• Большинство моделей дают вероятность (confidence)
• Нужно выбрать порог классификации
5. Пример
FN TN TN FN FP TN TN TP TN
Порог 50%
• Можем анализировать отклик сонара и построить
модель классификации «минерал vs. не_минерал»
• Большинство моделей дают вероятность (confidence)
• Нужно выбрать порог классификации
6. Выбор порога классификации
• Confusion matrices
• ROC диаграммы
• Precision-recall диаграммы
• Lift диаграммы
• И т.п.
Этих аналитик достаточно, если есть четкое понимание, какие
ограничения нужно соблюсти (например, FPR < 0.03)
А что делать, если нет?
13. True False
pred. True +1000 -300
pred. False 0 0
А теперь проезд платный – 50 ₽
True False
pred. True +950 -350
pred. False -50 -50
• Каждая операция для нас сколько-то стоит
• Так часто бывает на практике (обработка кредитной заявки, покупка
данных у поставщиков)
• Это приводит к тому, что нужно оценивать ожидаемую долю каждого
класса в задаче
• Желательно делать это до старта разработки :)
14. К чему это приводит
-50 000 ₽
0 ₽
50 000 ₽
100 000 ₽
150 000 ₽
200 000 ₽
>0,67 >0,63 >0,6 >0,56 >0,53 >0,49 >0,46 >0,42 >0,39 <=0,39
DANGER ZONE
15. 50%
25%
15%
5%
При какой доле минералов
с нашим алгоритмом и
«расценками» вообще
разумно плыть?
+164к ₽
+102к ₽
+66к ₽
-104к ₽
To go or not to go?
16. В обратную сторону
Итоговая эффективность = f (
confusion-matrix,
cost-matrix,
[atomic-scoring-cost],
[classes priors]
)
• Можно построить зависимость для каждой задачи и найти оптимальную матрицу
ошибок → определить оптимальный порог классификации
• Однако, чаще задача решается в прямом виде и строится многомерный массив всех
возможных сочетаний → анализируется и выбирается оптимальное сочетание
17. error cost
error
prediction
interval(s)
Прогнозирование числовых величин
• Аналогичный подход, только стоимость ошибки является функцией величины
ошибки
• В отличие от задачи классификации, эту функцию передают непосредственно в
процесс обучения как кастомную функцию потерь
18. Резюме
• Нужно пытаться оценить cost matrix / cost function – сколько стоит
каждый вид ошибки
• Очень часто скоринг данных сам по себе не бесплатен, в таком случае
нужно понимать долю каждого класса
• Все это часто позволяет понять, какими показателями качества должен
обладать алгоритм до начала разработки… и возможно ли это вообще :)
19. Спасибо за твое время и внимание
RChebotarev [#] croc.ru
Skype: roman.s.chebotarev
Slack [opendatascience]: convex
http://facebook.com/roman.cheborarev
https://ru.linkedin.com/in/roman-chebotarev-5b314339