use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EnsembleConfig {
pub enable_ensemble: bool,
pub ensemble_methods: Vec<EnsembleMethod>,
pub num_models: usize,
pub voting_strategy: VotingStrategy,
pub diversity_measures: Vec<DiversityMeasure>,
pub dynamic_selection: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum EnsembleMethod {
Bagging,
Boosting,
Stacking,
VotingClassifier,
RandomSubspace,
DynamicSelection,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum VotingStrategy {
Majority,
Weighted,
Stacking,
BayesianAveraging,
PerformanceBased,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum DiversityMeasure {
PairwiseDisagreement,
EntropyMeasure,
CorrelationCoefficient,
QStatistic,
KappaDiversity,
}