Тестирование вашей модели прогнозирования руководство по бектестингу

Тестирование вашей модели прогнозирования руководство по бектестингу

Изображение, созданное с использованием Midjourney

Узнайте, как правильно оценить эффективность моделей временных рядов через обратное тестирование

Оценка моделей временных рядов – это не простая задача. Фактически, оценивая прогнозные модели, допускается серьезные ошибки. Хотя эти ошибки не могут нарушить код или помешать получению каких-либо числовых результатов, они могут существенно повлиять на точность таких оценок.

В этой статье мы рассмотрим, как правильно оценивать модели временных рядов.

Почему стандартные методы машинного обучения не подходят для временных рядов?

Самым простым способом оценки эффективности модели машинного обучения является разделение набора данных на две части: обучающую и тестовую выборки. Чтобы улучшить надежность оценки, мы можем разделить наши данные несколько раз. Эта процедура называется перекрестной проверкой.

Следующая диаграмма представляет собой один из самых популярных видов перекрестной проверки – подход к разбиению на k-блоков. В случае 5-блочной проверки мы сначала разделяем набор данных на 5 частей. Затем мы обучаем модель, используя 4 из этих блоков, и оцениваем ее эффективность на 5-м блоке. Этот процесс повторяется еще 4 раза, каждый раз оставляя другой блок для оценки.

5-блочная перекрестная проверка

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

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