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

Dummy модель своими руками

Для оценки реального качества работы модели машинного обучения в качестве точки отсчета (baseline) используют простые алгоритмы. Рассмотрим, способы их правильного создания для гармоничной работы со средствами обработки данных в библиотеке scikit-learn. Сначала создадим демонстрационный датафрейм:

Сымитируем разделение датасета на тренировочный и тестовый:

-2

Напишем простой класс, позволяющий предсказывать цель (target) по ее средним значениям в предыдущих периодах (val1, val2, val3). Для его совместимости с использующими модели методами и пайплайнами надо сделать класс наследником BaseEstimator из sklearn.base и реализовать методы fit и predict:

-3

Приведем пример стандартного использования класса, когда предсказание строится по копии заданной колонки (val2):

-4

Как и ожидалось, предсказания совпадают с 'val2':

-5

Так как мы сделали класс наследником BaseEstimator, можем передать его в cross_val_score:

-6

Для удобства сверки правильности результатов запустили cross_val_score на X_ts, y_ts (хотя в данном случае правильно кросс-валидацию проводить по train выборке):

-7

Теперь сравним предсказания на всем X_ts с разными стратегиями и полученными вручную значениями:

-8

-9

Наши модели поддерживают и метод cross_val_predict, вот, например, медианный прогноз (reg2) с cross_val_predict:

-10

-11