//! Simplified ML Training Implementation for Foxhunt HFT System //! //! This module provides basic ML training functionality optimized for compilation success. //! Focus on working implementation over advanced features. //! //! ## New Unified Data Pipeline //! //! The training system now uses UnifiedDataLoader with dual data providers: //! - DatabentoHistoricalProvider for market data //! - BenzingaHistoricalProvider for news sentiment //! - UnifiedFeatureExtractor for consistent feature extraction // Sub-modules for specialized training components pub mod unified_trainer; // Unified training trait for all models // NO RE-EXPORTS - Use explicit imports: unified_data_loader::{...} use serde::{Deserialize, Serialize}; /// Training configuration #[derive(Debug, Clone, Serialize, Deserialize)] pub struct TrainingConfig { pub learning_rate: f64, pub batch_size: usize, pub epochs: usize, pub validation_split: f64, pub early_stopping_patience: Option, pub random_seed: Option, } impl Default for TrainingConfig { fn default() -> Self { Self { learning_rate: 0.001, batch_size: 32, epochs: 100, validation_split: 0.2, early_stopping_patience: Some(10), random_seed: None, } } } /// Device capabilities for performance scoring #[derive(Debug, Clone)] pub struct DeviceCapabilities { pub performance_score: f64, pub memory_gb: f64, pub compute_units: u32, } impl DeviceCapabilities { pub fn cpu_default() -> Self { Self { performance_score: 1.0, memory_gb: 8.0, compute_units: num_cpus::get() as u32, } } } #[cfg(test)] mod tests { use super::*; use approx::assert_relative_eq; #[test] fn test_training_config_default() { let config = TrainingConfig::default(); assert_eq!(config.learning_rate, 0.001); assert_eq!(config.batch_size, 32); assert_eq!(config.epochs, 100); assert_relative_eq!(config.validation_split, 0.2, epsilon = 1e-10); } #[test] fn test_device_capabilities_cpu_default() { let caps = DeviceCapabilities::cpu_default(); assert_eq!(caps.performance_score, 1.0); assert_eq!(caps.memory_gb, 8.0); assert!(caps.compute_units > 0); } }