Advanced Features¶
Temporal Enrichment¶
Add temporal features automatically:
d1_dataset = MultiSourceTSDataSet(
file_paths=['data.csv'],
target_cols=['value'],
enrich_cat=['hour', 'dow', 'month', 'minute']
)
Available temporal features:
hour: Hour of day (0-23)dow: Day of week (0-6)month: Month (1-12)minute: Minute (0-59)
Global vs Local Forecasting¶
- Local Forecasting (default):
Each time series is treated independently.
- Global Forecasting:
Train a single model across multiple time series.
d1_dataset = MultiSourceTSDataSet(
file_paths=['group_a.csv', 'group_b.csv'],
group_cols=['group_id'],
global_forecasting=True
)
Custom Data Splits¶
Split by groups:
d2_dataset = EncoderDecoder(
d1_dataset=d1_dataset,
split_ratio=(0.7, 0.15, 0.15),
split_group_config=([0, 1], [2]) # Train on groups 0,1; test on 2
)
Scaling Strategies¶
DSIPTS supports multiple scaling methods:
d2_dataset = EncoderDecoder(
d1_dataset=d1_dataset,
scaling_method='standard', # or 'minmax'
target_scaling_method='standard' # Scale targets separately
)
Memory Efficiency¶
For large datasets:
d1_dataset = MultiSourceTSDataSet(
file_paths=['large_data.csv'],
memory_efficient=True # Load data on-demand
)
d2_dataset = EncoderDecoder(
d1_dataset=d1_dataset,
memory_efficient=True # Transform on-the-fly
)
Quantile Forecasting¶
Predict multiple quantiles:
model = ITransformer(
out_channels=3,
past_steps=96,
future_steps=24,
quantiles=[0.1, 0.5, 0.9]
)
Custom Models¶
Extend the base model class:
from dsipts.models.base import BaseModel
class MyCustomModel(BaseModel):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# Your architecture here
def forward(self, batch):
# Your forward pass
pass