Машинное обучение

Плохие модели машинного обучения все еще можно хорошо откалибровать

Вам не нужен идеальный оракул, чтобы правильно рассчитать свои вероятности.

Модели машинного обучения часто оцениваются на основе их производительности, измеряемой тем, насколько близка та или иная метрика к нулю или единице (в зависимости от метрики), но это не единственный фактор, определяющий их полезность. В некоторых случаях модель, которая в целом не очень точна, все же может быть хорошо откалибрована и найти полезное применение. В этой статье мы рассмотрим разницу между хорошей калибровкой и хорошей производительностью, а также рассмотрим, когда одно может быть предпочтительнее другого. Давайте погрузимся!

Калибровка вероятности

Калибровка вероятности в ее строгом определении — это степень, в которой вероятности, предсказанные моделью классификации, соответствуют истинным частотам целевых классов в наборе данных. Хорошо откалиброванная модель дает прогнозы, которые в совокупности тесно связаны с фактическими результатами.

На практике это означает, что если мы делаем множество прогнозов с идеально откалиброванной моделью бинарной классификации, а затем рассматриваем только те, для которых модель предсказала 70% вероятность положительного класса, то модель должна быть верна на 70% время. Точно так же, если мы рассмотрим только примеры, для которых наша модель предсказала 10%-ную вероятность положительного класса, основная правда окажется действительно положительной в одной десятой случаев.

Хорошо откалиброванная модель дает прогнозы, которые тесно связаны с фактическими результатами в совокупности.

Модель со строгой калибровкой гарантирует, что ее прогнозы удовлетворяют частотному определению вероятности (в отличие от байесовского), согласно которому вероятность события является пределом его относительной частоты во многих испытаниях.

Рассмотрим вероятность того, что на кубике выпадет шестерка. Эта вероятность составляет 1/6, потому что во многих бросках или испытаниях вы будете получать шестерку в среднем каждые шесть бросков. И чем больше раз вы выпадете, тем ближе частота шестерок будет к 1/6. В этом контексте, что это означает, когда модель бинарной классификации выводит вероятность события 90 %? Это означает, что если он сделает это много раз, примерно в 9 из 10 случаев событие действительно произойдет.

Большинство моделей машинного обучения плохо откалиброваны, и причины этого зависят от алгоритма обучения. Ансамбли на основе деревьев, такие как случайные леса, генерируют свои прогнозы путем усреднения отдельных деревьев, что делает маловероятным получение вероятностей, близких к нулю и единице, поскольку в прогнозах деревьев всегда есть некоторая дисперсия. В результате мы видим вероятностные завышения около нуля и недооценки около единицы. Многие другие модели оптимизируются и оцениваются по бинарным метрикам. Точность смотрит только на то, правы мы или нет, игнорируя уверенность. Примесь Джини, используемая деревьями решений для принятия решения о разделении, оптимизируется для максимально возможной точности и как можно быстрее.

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

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

Вам вообще нужна калибровка?

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

Калибровка — это все: присвоение кредитной линии

В некоторых сценариях без хорошей калибровки не обойтись. Подумайте о банке, который решает, какую сумму кредита предоставить клиенту. Давайте предположим, что мы рассматриваем только кандидатов на получение кредита, которые уже были проверены и оценены как лица с низким уровнем риска и имеющие право на получение кредита (мы поговорим об этом процессе проверки позже). Решено, что кредиты будут предоставлены им. Вопрос в том, сколько денег мы можем одолжить каждому из них?

Чтобы ответить на него, банку необходимо знать точную вероятность дефолта для каждого клиента при разных суммах кредита. Зная, насколько вероятны различные сценарии, банк сможет спрогнозировать денежное воздействие всех кредитов, как погашенных, так и просроченных, и принять оптимальное решение. Для достижения своей цели им нужна очень хорошо откалиброванная модель.

Обратите внимание, что нас не волнует точность модели сама по себе. Точность заключается в том, чтобы быть на правильной стороне порога предсказания; с его точки зрения, нет никакой разницы между прогнозированием 51% и 99% до тех пор, пока кредит не будет погашен; предсказание одинаково верно в обоих случаях. Но и для банка, и для самого соискателя кредита это огромная разница. Здесь важно правильно определить вероятность.

Калибровка решает все: оценка производительности модели

Иногда хорошая калибровка модели является необходимым условием для данного приложения. Подумайте об оценке производительности модели в производственной среде, не зная целевых ориентиров. Одним из подходов к решению этой сложной задачи для моделей классификации является алгоритм NannyML оценка производительности на основе достоверности (CBPE). В двух словах, идея этого подхода состоит в том, чтобы оценить элементы матрицы путаницы на основе ожидаемой частоты ошибок, которую мы знаем, предполагая, что модель хорошо откалибрована.

Таким образом, если мы хотим отслеживать производительность модели в производственной среде и у нас нет немедленных целевых показателей достоверности, нам необходимо откалибровать нашу модель. И опять же, модель не должна быть очень точной. Пока его прогнозы хорошо откалиброваны, все в порядке.

Нам не нужна калибровка: проблемы ранжирования

Однако бывают ситуации, когда калибровка модели не имеет большого значения. К ним относятся, например, всевозможные проблемы ранжирования.

Подумайте о моделях, которые ранжируют заголовки новостных статей по качеству или релевантности поисковому запросу пользователя. Если цель состоит в том, чтобы выбрать одну или несколько статей для показа пользователю, нас не особо волнует точная вероятность того, что каждая из них качественная и релевантная; скорее, нас интересует порядок оценок, выдаваемых моделью. То есть мы хотим быть уверены, что то, что мы показываем пользователю, лучше, чем то, что мы не показываем, и что лучшие новости находятся вверху списка результатов. При такой настройке калибровка модели не имеет особого смысла.

Калибровка нам не нужна: выдача кредитов

Другим примером сценария, в котором калибровка не так важна, является отбор для предоставления кредита, о котором мы уже упоминали.

Цель здесь состоит в том, чтобы предсказать, какие заявители вернут свои кредиты. В этой проблеме бинарной классификации банк в основном заинтересован в точности классификации модели, а не в вероятностях, которые она дает.

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

Давайте теперь посмотрим на некоторые модели, которые слабы с точки зрения производительности, но их хорошая калибровка делает их очень полезными для своих целей.

История плохой, хорошо откалиброванной модели

Рассмотрим две разные модели. Во-первых, мы рассмотрим модель, в которой трудно добиться хорошей производительности, но хорошая калибровка обеспечивает ценность модели. Во-вторых, мы будем рассматривать модель, теоретически неспособную к хорошей производительности, но хорошо откалиброванную и, следовательно, полезную.

Когда сложно добиться хороших результатов

Некоторое время назад я обучал модели прогнозировать результаты футбольных (также известных как футбольные) матчей с целью быстро и легко разбогатеть, делая ставки в букмекерской конторе. Точно предсказать результат матча — невыполнимая задача — слишком много скрытых факторов, таких как удача и распорядок дня игроков. Но знаете что, получение точных прогнозов — это не то, что нам нужно! Как и в примерах с назначением кредитной линии и оценкой производительности, здесь тоже вся игра заключается в том, чтобы правильно рассчитать вероятности.

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

Точность испытаний модели составила 63%. Это, безусловно, лучше, чем фиктивная модель, которая всегда предсказывает победу хозяев; такая модель набрала бы 46%, поскольку хозяева, как правило, выигрывают почти в половине игр. Тем не менее, 63% не кажутся отличным результатом.

Давайте посмотрим на калибровочный график модели. Горизонтальная ось показывает вероятности, созданные моделью для тестового набора, разбитого на 10 ячеек одинаковой ширины. Для каждого фактическая частота домашних побед показана на вертикальной оси. Идеально откалиброванная модель даст прямую диагональную линию.

Первоначальная модель, показанная синим цветом, очень плохо откалибрована для более экстремальных вероятностей: предсказание в 90% имеет только 30%-й шанс быть верным! Поэтому я решил откалибровать его, используя один из самых популярных методов: установка логистического регрессора поверх выходных данных модели.

Полученная модель, показанная зеленым цветом, выглядит гораздо лучше откалиброванной. Вы также наверняка заметите, что он больше не дает экстремальных вероятностей. Что касается точности, то она снизилась на один процентный пункт, до 62%. Таким образом, нам удалось улучшить калибровку модели ценой точности. Чем это полезно?

Рассмотрим следующую стратегию: мы будем делать ставки только на матчи, в которых модель наиболее уверена в победе хозяев поля, то есть на те, для которых она дает прогноз 70%. Благодаря достаточно хорошей калибровке мы знаем, что модель будет правильной в 70% таких случаев. Для простоты предположим, что мы ставим 100 долларов на каждую игру отдельно.

Из 100 игр мы пропустим 30, что принесет нам убыток в размере 3000 долларов. Но мы выиграем оставшиеся 70 ставок, а денежный приз составит 70 * 100 * (odds — 1)(мы вычитаем 1, чтобы учесть, что нам нужно потратить 7000 долларов на купоны в первую очередь). Мы можем решить это уравнение, чтобы найти такие коэффициенты букмекера, для которых мы безубыточны:

3000 = 7000 * odds - 7000
10000 = 7000 * odds
odds = 10000 / 7000 = 1.42

Ну вот! Мы можем делать ставки на все матчи, для которых модель дает прогноз 70% и для которых букмекерская контора предлагает коэффициенты выше 1,42 (без учета налога). Мы, конечно, можем вычислить шансы для других предсказанных вероятностей аналогичным образом. Предполагая, что калибровка модели останется хорошей в будущем (и это сильное предположение!), эта стратегия должна быть весьма прибыльной в долгосрочной перспективе. И все это несмотря на плохую точность в 62%!

Когда невозможно получить хорошую производительность

Теперь рассмотрим попытку предсказать броски костей. Наша модель должна давать вероятность того, что игральная кость выпадет на шесть после того, как она была брошена. Мы предполагаем, что кубик — это обычный кубик настольной игры с шестью гранями.

Бросание такого кубика — полностью стохастический процесс, и вероятность того, что каждая сторона выпадет лицом вверх, одинакова: ⅙. Другими словами, классы данных совершенно неразделимы: построить точную модель невозможно. Какая модель у нас может быть тогда?

Рассмотрим эти два конкурирующих подхода. Модель А — это фиктивный двоичный классификатор, который всегда с полной уверенностью предсказывает, что выпавшее число не является шестеркой; то есть он предсказывает шесть в 0% случаев и не шесть в 100% случаев. Модель B также никогда не предсказывает шестерку, но вероятности, которые она выводит, различны: она всегда предсказывает шестерку с вероятностью ⅙ и не-шесть с вероятностью ⅚.

В конечном итоге обе модели имеют одинаковую точность: они верны в 5 случаях из 6. И это настолько хорошо, насколько может быть хороша любая модель. Однако между двумя моделями есть важное различие: модель B идеально откалибрована, а модель A вообще не откалибрована.

Что касается калибровки, две модели не могут быть более разными. Как насчет полезности двух моделей? Модель А на самом деле не представляет никакой ценности. Модель B, с другой стороны, позволяет нам точно предсказать целевую частоту в долгосрочной перспективе. Это также позволяет нам запускать симуляции, чтобы ответить на более сложные вопросы, такие как: какова вероятность того, что выпадет четыре не шесть и семь шестерок за 11 бросков? Еще раз, несмотря на плохую прогностическую эффективность, хорошая калибровка делает модель полезной!

Выводы

  • Хорошо откалиброванные модели дают прогнозы, которые тесно связаны с частотой фактических результатов в совокупности. Большинство моделей плохо откалиброваны из-за того, как они учатся, но есть простые способы исправить это.
  • Для некоторых приложений, таких как присвоение кредитных линий или оценка CBPE, необходима хорошая калибровка (фактически, более важная, чем сами показатели производительности). Для других, таких как предоставление кредитов или ранжирование проблем, не очень; здесь важно правильное ранжирование и производительность.
  • Неточные модели могут быть очень полезными, если они хорошо откалиброваны; иногда правильное определение вероятностей — это все, что мы можем сделать.

Эта статья также была опубликована в Блоге NannyML.

Спасибо за прочтение!

Если вам понравился этот пост, почему бы вам не подписаться на обновления по электронной почте на мои новые статьи? А, став участником Medium, вы можете поддержать меня и получить неограниченный доступ ко всем историям других авторов и меня.

Нужна консультация? Вы можете спросить меня о чем угодно или заказать 1:1 здесь.

Вы также можете попробовать одну из других моих статей. Не можете выбрать? Выберите один из них: