quantrs2_device/performance_dashboard/
ml_analytics.rs1use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct MLAnalyticsConfig {
9 pub enable_ml_analytics: bool,
11 pub prediction_models: Vec<PredictionModel>,
13 pub feature_config: FeatureConfig,
15 pub training_config: TrainingConfig,
17 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}