Для оценки реального качества работы модели машинного обучения в качестве точки отсчета (baseline) используют простые алгоритмы. Рассмотрим, способы их правильного создания для гармоничной работы со средствами обработки данных в библиотеке scikit-learn. Сначала создадим демонстрационный датафрейм:
Сымитируем разделение датасета на тренировочный и тестовый:
Напишем простой класс, позволяющий предсказывать цель (target) по ее средним значениям в предыдущих периодах (val1, val2, val3). Для его совместимости с использующими модели методами и пайплайнами надо сделать класс наследником BaseEstimator из sklearn.base и реализовать методы fit и predict:
Приведем пример стандартного использования класса, когда предсказание строится по копии заданной колонки (val2):
Как и ожидалось, предсказания совпадают с 'val2':
Так как мы сделали класс наследником BaseEstimator, можем передать его в cross_val_score:
Для удобства сверки правильности результатов запустили cross_val_score на X_ts, y_ts (хотя в данном случае правильно кросс-валидацию проводить по train выборке):
Теперь сравним предсказания на всем X_ts с разными стратегиями и полученными вручную значениями:
Наши модели поддерживают и метод cross_val_predict, вот, например, медианный прогноз (reg2) с cross_val_predict: