quantrs2_ml/time_series/mod.rs
1//! Quantum Time Series Forecasting - Modular Implementation
2//!
3//! This module provides a comprehensive framework for quantum-enhanced time series forecasting
4//! that leverages quantum computing principles for improved prediction accuracy,
5//! pattern recognition, and temporal modeling in sequential data.
6//!
7//! The module is organized into focused submodules for maintainability and clarity:
8//! - `config`: Configuration structures and enums for all time series models
9//! - `models`: Time series model implementations (ARIMA, LSTM, Transformer, etc.)
10//! - `features`: Quantum feature extraction and engineering
11//! - `ensemble`: Ensemble methods and quantum voting mechanisms
12//! - `decomposition`: Seasonal and trend decomposition with quantum enhancement
13//! - `forecaster`: Main forecasting coordinator and execution logic
14//! - `metrics`: Performance metrics and evaluation tools
15//! - `utils`: Utility functions and synthetic data generation
16
17pub mod config;
18pub mod decomposition;
19pub mod ensemble;
20pub mod features;
21pub mod forecaster;
22pub mod metrics;
23pub mod models;
24pub mod utils;
25
26// Re-export main types for backward compatibility
27pub use config::*;
28pub use decomposition::{
29 ChangePoint, ChangeType, ChangepointAlgorithm, QuantumChangepointDetector,
30 QuantumResidualAnalyzer, QuantumSeasonalDecomposer, QuantumTrendExtractor, ResidualStatistics,
31 TrendParameters,
32};
33pub use ensemble::*;
34pub use features::*;
35pub use forecaster::*;
36pub use metrics::*; // This will provide AnomalyPoint
37pub use models::*;
38pub use utils::*;
39
40// Convenient type aliases
41pub type Result<T> = crate::error::Result<T>;
42pub type MLError = crate::error::MLError;
43
44/// Main quantum time series forecasting entry point
45pub fn create_forecaster(config: QuantumTimeSeriesConfig) -> Result<QuantumTimeSeriesForecaster> {
46 QuantumTimeSeriesForecaster::new(config)
47}
48
49/// Create financial forecasting configuration
50pub fn financial_config(forecast_horizon: usize) -> QuantumTimeSeriesConfig {
51 QuantumTimeSeriesConfig::financial(forecast_horizon)
52}
53
54/// Create IoT sensor forecasting configuration
55pub fn iot_config(sampling_rate: usize) -> QuantumTimeSeriesConfig {
56 QuantumTimeSeriesConfig::iot_sensor(sampling_rate)
57}
58
59/// Create demand forecasting configuration
60pub fn demand_config() -> QuantumTimeSeriesConfig {
61 QuantumTimeSeriesConfig::demand_forecasting()
62}