Может ли ваша модель прогнозировать реальные вероятности? На самом деле абсолютно точно это не может делать ни одна. Мы можем максимально приблизиться к реальным показателям, но для этого модель должна быть откалибрована. То есть скорректирована так, чтобы полученные показатели распределения вероятностей были как можно ближе к реальным. В такой модели предсказанная вероятность близка к теоретической. Сегодня, когда прогнозирование с помощью машинного обучения применяется в промышленности, медицине, бизнесе, цена минимальной ошибки и погрешности высока. Для любой аналитики это будет полезно, так как выходные данные станут более достоверными, а значит и более подходящими для дальнейшей работы с ними.  Так как откалибровать вашу модель? Для начала необходимо построить так называемый калибратор, то есть вторую модель, способную помочь приблизить вероятности к реальным. Калибровку не стоит проводить на тех же данных, что применялись для обучения первой модели. Это приведет к смещению, так как производительность модели на его обучающих данных будет выше, чем на новых.  Для калибровки можно использовать достаточно большое количество методов: Гистограммная калибровка; Изотоническая регрессия; Калибровка Платта; Логистическая регрессия; Деревья калибровки;  Ансамблирование;  Сглаживание меток; Использование фокальной ошибки и т.д. Их применение варьируется в зависимости от ситуации. Откалибровывать нашу модель мы будем в Python. Поэтому мы рассмотрим калибровку на примере изотонической и логистической регрессий, так как они уже реализованы в библиотеке SciKit-Learn и будут достаточно показательны.   Вот исходный тестовый набор: Следующим шагом будет обучение. Мы воспользуемся случайным лесом (RandomForestClassifier): Нам необходимо обучить калибратор на основе обеих регрессий, мы воспользуемся результирующими данными нашего классификатора: Логистическая регрессия строит прогнозы в бинарном значении, то есть в диапазоне от 0 до 1. Изотоническая регрессия подгоняет линию к последовательности наблюдений. В итоге мы получаем 3 варианта. Но какая из этих моделей ближе всего к реальным показателям? Метрикой будет служить ожидаемая ошибка калибровки (                                                  ), то есть значение ошибок отдельных ячеек. Иногда используют показатель максимальной ошибки калибровки. Ненадолго вернемся к теории, чтобы упомянуть, что для оценки калибровки применяется диаграмма надежности. Это гистограмма, где наблюдения, принадлежащие к одной ячейки, имеют равную вероятность. Чем кривая ближе к биссектрисе на графике, тем выше степень откалиброванности модели. Диаграмма является отображением функции распределения вероятности. Число столбцов (правильнее будет называть их группами) можно найти с помощью: формулы Стерджеса; правила Райса; формулы Доана; правила Скотта; правила Фридмана-Диакониса. Так вот в средней ошибке калибровки количество ячеек (n) и будет соответствовать числу групп. Мы определим это количество с помощью правила Фридмана-Диакониса, так как оно встроено в функцию histogram в numpy. IQR – это межквартильный размах. Грубо говоря, это разница между третьим и первым квартилями, которые делят упорядоченный набор данных на четыре части. В итоге необходимая нам метрика выглядит так: Наконец, сравним калибровку трех моделей. ECE будет следующей: RandomForest — 7.0% RandomForest + LogisticReg — 2.3% RandomForest + IsotonicReg — 1.2% Таким образом, изотоническая регрессия показала самое маленькое отклонение от реальной вероятности в 1.2%. Эта будет наиболее подходящая модель с точки зрения калибровки. Калибровка моделей необходима, если нам нужны истинные вероятностные результаты, а не их приближения. Особенно её применение важно в отношении сложных нелинейных алгоритмов, поскольку они предоставляют неточные прогнозы. В целом калибровка дает гибкость представления прогнозов, а также вариативность в оценке модели. Если говорить обобщенно, то это важный этап формирования реальных прогнозов. Теперь вы знаете как правильно ей пользоваться.  Профессиональное сообщество