To perform time series forecasting, you typically follow these steps:
- Define
dataset_params specifying the target, date, and id columns. - Initialize a
TSDataset with your data. - Create a
Pipeline using Pipeline.easy_setup to handle preprocessing (e.g., lags). - Initialize an
MLTrainer with a model (e.g., CatBoost) and a validator (e.g., KFoldCrossValidator). - Define a
Strategy (e.g., RecursiveStrategy) with your desired horizon and history. - Call
.fit(dataset) to train and .predict(dataset) to generate forecasts.
from tsururu.dataset import Pipeline, TSDataset
from tsururu.model_training.trainer import MLTrainer
from tsururu.model_training.validator import KFoldCrossValidator
from tsururu.models.boost import CatBoost
from tsururu.strategies import RecursiveStrategy
import pandas as pd
dataset_params = {
"target": {"columns": ["value"]},
"date": {"columns": ["date"]},
"id": {"columns": ["id"]},
}
dataset = TSDataset(
data=pd.read_csv(df_path),
columns_params=dataset_params,
)
pipeline = Pipeline.easy_setup(
dataset_params, {"target_lags": 3, "date_lags": 1}, multivariate=False
)
trainer = MLTrainer(model=CatBoost, validator=KFoldCrossValidator)
strategy = RecursiveStrategy(horizon=3, history=7, trainer=trainer, pipeline=pipeline)
fit_time, _ = strategy.fit(dataset)
forecast_time, current_pred = strategy.predict(dataset)