Scikit-learn использует очень удобный подход, основанный на методах fit и predict. У меня есть данные временного ряда в формате, подходящем для fit и predict.
Например, у меня есть следующий Xs:
[[1.0, 2.3, 4.5], [6.7, 2.7, 1.2], ..., [3.2, 4.7, 1.1]]
и соответствующий ys:
[[1.0], [2.3], ..., [7.7]]
Эти данные имеют следующее значение. Значения, хранящиеся в ys, образуют временной ряд. Значения в Xs являются соответствующими зависимыми от времени "факторами", которые, как известно, оказывают определенное влияние на значения в ys (например, температура, влажность и атмосферное давление).
Теперь, конечно, я могу использовать fit(Xs,ys). Но затем я получаю модель, в которой будущие значения в ys зависят только от факторов и не зависят от предыдущих значений Y (по крайней мере, напрямую), и это ограничение модели. Я хотел бы иметь модель, в которой Y_n зависит также от Y_{n-1} и Y_{n-2} и т.д. Например, я могу использовать экспоненциальную скользящую среднюю в качестве модели. Какой самый элегантный способ сделать это в scikit-learn
ADDED
Как уже упоминалось в комментариях, я могу расширить Xs, добавив ys. Но этот способ имеет некоторые ограничения. Например, если я добавлю последние 5 значений Y в качестве 5 новых столбцов на X, информация о временном упорядочении ys будет потеряна. Например, в X нет указаний на то, что значения в пятом столбце соответствуют значению в 4-м столбце и так далее. В качестве модели я мог бы иметь линейную подгонку последних пяти ys и использовать найденную линейную функцию для предсказания. Но если у меня 5 значений в 5 столбцах, это не так тривиально.
ADDED 2
Чтобы сделать мою проблему еще более ясной, я хотел бы привести один конкретный пример. Я хотел бы иметь "линейную" модель, в которой y_n = c + k1*x1 + k2*x2 + k3*x3 + k4*EMOV_n, где EMOV_n - только экспоненциальная скользящая средняя. Как я могу реализовать эту простую модель в scikit-learn?
