quantrs2_device/performance_dashboard/
ml_analytics.rs

1//! ML Analytics Configuration Types
2
3use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6/// Machine learning analytics configuration
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct MLAnalyticsConfig {
9    /// Enable ML analytics
10    pub enable_ml_analytics: bool,
11    /// Prediction models to use
12    pub prediction_models: Vec<PredictionModel>,
13    /// Feature engineering configuration
14    pub feature_config: FeatureConfig,
15    /// Model training configuration
16    pub training_config: TrainingConfig,
17    /// Model evaluation configuration
18    pub evaluation_config: EvaluationConfig,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
22pub enum PredictionModel {
23    LinearRegression,
24    PolynomialRegression,
25    RandomForest,
26    NeuralNetwork,
27    TimeSeriesARIMA,
28    SupportVectorRegression,
29    GradientBoosting,
30    Ensemble,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct FeatureConfig {
35    pub feature_selection_methods: Vec<FeatureSelectionMethod>,
36    pub feature_engineering_rules: Vec<FeatureEngineeringRule>,
37    pub dimensionality_reduction: Option<DimensionalityReduction>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct TrainingConfig {
42    pub training_data_size: usize,
43    pub validation_split: f64,
44    pub cross_validation_folds: usize,
45    pub hyperparameter_tuning: bool,
46    pub model_selection_criteria: ModelSelectionCriteria,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct EvaluationConfig {
51    pub evaluation_metrics: Vec<EvaluationMetric>,
52    pub test_data_size: usize,
53    pub evaluation_frequency: Duration,
54    pub performance_tracking: bool,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
58pub enum FeatureSelectionMethod {
59    VarianceThreshold,
60    UnivariateSelection,
61    RecursiveFeatureElimination,
62    LassoRegularization,
63    MutualInformation,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
67pub enum FeatureEngineeringRule {
68    PolynomialFeatures,
69    InteractionTerms,
70    MovingAverage,
71    Differencing,
72    LogTransform,
73    Normalization,
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
77pub enum DimensionalityReduction {
78    PCA,
79    ICA,
80    LDA,
81    TSNE,
82    UMAP,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
86pub enum ModelSelectionCriteria {
87    RMSE,
88    MAE,
89    R2Score,
90    AIC,
91    BIC,
92    CrossValidationScore,
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
96pub enum EvaluationMetric {
97    Accuracy,
98    Precision,
99    Recall,
100    F1Score,
101    RMSE,
102    MAE,
103    R2Score,
104}