19
Выбираем метрику оценки качества модели Или как подружить менеджера с data-scientist’ом Роман Чеботарев Архитектор решений Advanced Analytics, КРОК DataFest 2 , Москва

Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Embed Size (px)

Citation preview

Page 1: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Выбираем метрику оценки качества модели

Или как подружить менеджера с data-scientist’ом

Роман Чеботарев

Архитектор решений Advanced Analytics, КРОК

DataFest2, Москва

Page 2: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Проблема

• Data scientist часто получает формулировку задачи с метрикой ее качества…• … которая в реальности берется исходя из common sense• … которой нет («А спрогнозируй-ка мне <..> !»)

• Результат работы алгоритма / модели – вероятностный, выбирая разные пороги, получаем разные результаты

• Очень часто именно от пороговых значений зависит итоговое качество работы решения

Page 3: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Пример• Нужно больше минералов ©

• Щуп – 100% точность (но долго и сложно → дорого)

• Сонар – непрерывный сигнал или много параметров

• Есть база откликов сонара на минералы / не_минералы

Page 4: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Пример

• Можем анализировать отклик сонара и построить модель классификации «минерал vs. не_минерал»

• Большинство моделей дают вероятность (confidence)

• Нужно выбрать порог классификации

Page 5: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Пример

FN TN TN FN FP TN TN TP TN

Порог 50%

• Можем анализировать отклик сонара и построить модель классификации «минерал vs. не_минерал»

• Большинство моделей дают вероятность (confidence)

• Нужно выбрать порог классификации

Page 6: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Выбор порога классификации

• Confusion matrices• ROC диаграммы• Precision-recall диаграммы• Lift диаграммы• И т.п.

Этих аналитик достаточно, если есть четкое понимание, какие ограничения нужно соблюсти (например, FPR < 0.03)

А что делать, если нет?

Page 7: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Итак, наша лучшая модель (ROC)

Page 8: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Итак, наша лучшая модель (ROC)

Какой порог выбрать?

Page 9: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Итак, наша лучшая модель (Lift-диаграмма)

Page 10: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

It’s all about money

True False

pred. True +1000 ₽ -300 ₽

pred. False 0 0

Построим COST MATRIX:

• Нашли минерал (TP) – заработали 1000 ₽ (достали минерал и продали)

• Промахнулись (FP) – потеряли 300 ₽ (щуп портится, з\п геологам)

• Остальное – бесплатно

Page 11: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Оптимальный порог = argmax(cumulative lift in money)

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

Page 12: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

А если cost(FP) = -1000 ₽ ?

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

Page 13: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

True False

pred. True +1000 -300

pred. False 0 0

А теперь проезд платный – 50 ₽

True False

pred. True +950 -350

pred. False -50 -50

• Каждая операция для нас сколько-то стоит

• Так часто бывает на практике (обработка кредитной заявки, покупка данных у поставщиков)

• Это приводит к тому, что нужно оценивать ожидаемую долю каждого класса в задаче

• Желательно делать это до старта разработки :)

Page 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

Page 15: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

50%

25%

15%

5%

При какой доле минераловс нашим алгоритмом и «расценками» вообще разумно плыть?

+164к ₽

+102к ₽

+66к ₽

-104к ₽

To go or not to go?

Page 16: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

В обратную сторону

Итоговая эффективность = f (confusion-matrix,cost-matrix,[atomic-scoring-cost],[classes priors])

• Можно построить зависимость для каждой задачи и найти оптимальную матрицу ошибок → определить оптимальный порог классификации

• Однако, чаще задача решается в прямом виде и строится многомерный массив всех возможных сочетаний → анализируется и выбирается оптимальное сочетание

Page 17: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

error cost

error

predictioninterval(s)

Прогнозирование числовых величин

• Аналогичный подход, только стоимость ошибки является функцией величины ошибки

• В отличие от задачи классификации, эту функцию передают непосредственно в процесс обучения как кастомную функцию потерь

Page 18: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Резюме

• Нужно пытаться оценить cost matrix / cost function – сколько стоит каждый вид ошибки

• Очень часто скоринг данных сам по себе не бесплатен, в таком случае нужно понимать долю каждого класса

• Все это часто позволяет понять, какими показателями качества должен обладать алгоритм до начала разработки… и возможно ли это вообще :)

Page 19: Роман Чеботарёв, КРОК, «Выбираем метрику оценки качества модели»

Спасибо за твое время и внимание

RChebotarev [#] croc.ru

Skype: roman.s.chebotarev

Slack [opendatascience]: convex

http://facebook.com/roman.cheborarev

https://ru.linkedin.com/in/roman-chebotarev-5b314339