Отдельные числовые признаки, несмотря на обработку моделями машинного обучения, зачастую все же нуждаются в преобразованиях. Одним из примеров являются номера месяцев, часов, минут и т.д, никак не отражающие цикличный характер признаков. Чтобы это исправить, обычно используют функции синуса и косинуса, имеющие период в 2пи. Для преобразования понадобится отобразить числовые значения как-то так:
Для примера сгенерируем датасет с примерными средними температурами по месяцам:
Разобьем датасет на тренировочную и валидационную части:
Теперь попытаемся предсказать температуру по месяцу:
Можно заметить, что модель с такой интерпретацией месяца практически не улавливает сезонный характер температуры (абсолютная ошибка в 11 градусов!):
Теперь отобразим номер месяц в синус и косинус аналогично правилу выше:
Посчитаем регрессию по двум новым признакам:
Как можно заметить, новая модель гораздо лучше справляется с предсказаниями: