"""
Train multiple Nixtla models and evaluate with MASE metrics
"""
import pandas as pd
import numpy as np
from functools import partial
from nixtla import NixtlaClient
from utilsforecast.evaluation import evaluate
from utilsforecast.losses import mase
# Initialize Nixtla client
nixtla_client = NixtlaClient()
# Load data
print("Loading data...")
train_df = pd.read_parquet('data/train_data.parquet')
test_df = pd.read_parquet('data/test_data.parquet')
# Convert ds to datetime if needed
train_df['ds'] = pd.to_datetime(train_df['ds'])
test_df['ds'] = pd.to_datetime(test_df['ds'])
print(f"Train data: {train_df.shape}")
print(f"Test data: {test_df.shape}")
print(f"Unique IDs in train: {train_df['unique_id'].nunique()}")
print(f"Unique IDs in test: {test_df['unique_id'].nunique()}")