Найти тему
Властелин машин

Как залатать дыры в прогнозах

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

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

Рассмотрим пример. Пусть имеется матрица из идентификаторов объектов, их групп и прогнозов альтернативной модели:

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

-2

Объединим датафреймы:

-3

Далее пишем функцию для пропорционального распределения прогнозов и применяем ее к нашему столбцу preds_incor:

-4

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

-5

-6