sklears_ensemble/
lib.rs

1#![allow(dead_code)]
2#![allow(non_snake_case)]
3#![allow(missing_docs)]
4#![allow(deprecated)]
5#![allow(clippy::all)]
6#![allow(clippy::pedantic)]
7#![allow(clippy::nursery)]
8#![allow(unused_imports)]
9#![allow(unused_variables)]
10#![allow(unused_mut)]
11#![allow(unused_assignments)]
12#![allow(unused_doc_comments)]
13#![allow(unused_parens)]
14#![allow(unused_comparisons)]
15// SIMD operations are provided by scirs2-core::simd_ops (SciRS2 Policy compliant)
16//! Ensemble methods for sklears
17//!
18//! This crate provides implementations of ensemble machine learning algorithms including:
19//! - Bagging (Bootstrap Aggregating)
20//! - Gradient Boosting
21//! - AdaBoost (Adaptive Boosting)
22//! - Voting Classifiers/Regressors
23//! - Stacking and Blending
24
25pub mod adaboost;
26pub mod adversarial;
27pub mod analysis;
28pub mod bagging;
29pub mod compression;
30pub mod cpu_optimization;
31pub mod gpu_acceleration;
32pub mod gradient_boosting;
33pub mod imbalanced;
34pub mod memory_efficient;
35pub mod mixed_precision;
36// TODO: Disabled due to ndarray 0.17 HRTB trait bound issues
37// pub mod model_selection;
38pub mod monitoring;
39pub mod multi_label;
40pub mod multi_task;
41pub mod parallel;
42pub mod regularized;
43pub mod simd_ops;
44pub mod simd_stacking;
45pub mod stacking;
46pub mod streaming;
47pub mod tensor_ops;
48pub mod time_series;
49pub mod voting;
50
51pub use adaboost::{AdaBoostAlgorithm, AdaBoostClassifier, AdaBoostConfig};
52pub use adversarial::{
53    AdversarialEnsembleClassifier, AdversarialEnsembleConfig, AdversarialPredictionResults,
54    AdversarialStrategy, AttackMethod, DefensiveStrategy, InputPreprocessing, RobustnessMetrics,
55};
56pub use analysis::{
57    CalibrationMetrics, ConfidenceMetrics, EnsembleAnalyzer, FeatureImportanceAnalysis,
58    ImportanceAggregationMethod, ReliabilityDiagram, UncertaintyDecomposition,
59    UncertaintyQuantification,
60};
61pub use bagging::{BaggingClassifier, BaggingConfig, BaggingRegressor};
62pub use compression::{
63    AcquisitionFunction, BayesianEnsembleOptimizer, CompressedEnsemble, CompressionConfig,
64    CompressionMetadata, CompressionStats, CompressionStrategy, EnsembleCompressor, EnsemblePruner,
65    KnowledgeDistillationTrainer, QuantizationParams, SparsityInfo,
66};
67pub use cpu_optimization::{
68    CacheOptimizedMatrixOps, CpuOptimizationConfig, CpuOptimizer, LoopOptimizedAlgorithms,
69    PerformanceCounters, VectorizedEnsembleOps,
70};
71pub use gpu_acceleration::{
72    detect_available_backends, GpuBackend, GpuConfig, GpuContext, GpuDeviceInfo,
73    GpuEnsembleTrainer, GpuTensorOps, ProfilingResults,
74};
75pub use gradient_boosting::{
76    FeatureImportanceMetrics, GradientBoostingClassifier, GradientBoostingConfig,
77    GradientBoostingRegressor, GradientBoostingTree, LossFunction,
78};
79pub use imbalanced::{
80    CombinationStrategy, CostSensitiveConfig, ImbalancedEnsembleClassifier,
81    ImbalancedEnsembleConfig, SMOTEConfig, SMOTESampler, SamplingQualityMetrics, SamplingResult,
82    SamplingStrategy, ThresholdMovingStrategy,
83};
84pub use memory_efficient::{
85    IncrementalLinearRegression, IncrementalModel, MemoryEfficientConfig, MemoryEfficientEnsemble,
86};
87pub use mixed_precision::{
88    AMPContext, GradientScaler, Half, MixedPrecisionArray, MixedPrecisionConfig,
89    MixedPrecisionGradientAccumulator, MixedPrecisionTrainer, ScalerState,
90};
91// TODO: Disabled due to ndarray 0.17 HRTB trait bound issues
92// pub use model_selection::{
93//     BiasVarianceAnalyzer, BiasVarianceConfig, BiasVarianceDecomposition,
94//     BiasVarianceEnsembleSizeAnalysis, DiversityAnalyzer, DiversityMetrics, EnsembleCVResults,
95//     EnsembleCVStrategy, EnsembleConstructionConfig, EnsembleCrossValidator, InterraterReliability,
96//     ModelSelectionLossFunction, SampleBiasVariance, ScoringMetric,
97// };
98pub use monitoring::{
99    DegradationIndicators, DriftDetectionResult, DriftType, EnsembleMonitor, ModelHealth,
100    MonitoringConfig, MonitoringResults, PerformanceDataPoint, PerformanceMetric, PerformanceTrend,
101    RecommendedAction,
102};
103pub use multi_label::{
104    LabelCorrelationMethod, LabelTransformationStrategy, MultiLabelAggregationMethod,
105    MultiLabelEnsembleClassifier, MultiLabelEnsembleConfig, MultiLabelPredictionResults,
106    MultiLabelTrainingResults,
107};
108pub use multi_task::{
109    CrossTaskValidation, MultiTaskEnsembleClassifier, MultiTaskEnsembleConfig,
110    MultiTaskEnsembleRegressor, MultiTaskFeatureSelector, MultiTaskTrainingResults, TaskData,
111    TaskHierarchy, TaskMetrics, TaskSharingStrategy, TaskSimilarityMetric, TaskWeightingStrategy,
112};
113pub use parallel::{
114    AsyncEnsembleCoordinator, DataPartition, FederatedEnsembleCoordinator, ParallelConfig,
115    ParallelEnsembleTrainer, ParallelPerformanceMetrics, ParallelStrategy, ParallelTrainable,
116};
117pub use regularized::{
118    DropoutEnsemble, OptimizerState, RegularizationStep, RegularizedEnsembleClassifier,
119    RegularizedEnsembleConfig, RegularizedEnsembleRegressor, WeightOptimizer,
120};
121pub use simd_ops::SimdOps;
122pub use simd_stacking::{
123    simd_aggregate_predictions, simd_batch_linear_predictions, simd_compute_ensemble_diversity,
124    simd_compute_gradients, simd_dot_product, simd_generate_meta_features, simd_linear_prediction,
125    simd_train_stacking_ensemble, StackingEnsembleModel,
126};
127pub use stacking::{
128    BaseEstimator, BlendingClassifier, MetaEstimator, MetaFeatureStrategy, MetaLearningStrategy,
129    MultiLayerStackingClassifier, MultiLayerStackingConfig, SimpleStackingClassifier,
130    StackingClassifier, StackingConfig, StackingLayerConfig,
131};
132pub use streaming::{
133    AdaptiveStreamingEnsemble, ConceptDriftDetector, StreamingConfig, StreamingEnsemble,
134};
135pub use tensor_ops::{
136    ActivationType, AggregationType, ComputationGraph, EnsembleTensorOps, GraphNode, MemoryLayout,
137    ReductionType, Tensor, TensorConfig, TensorDevice, TensorOperation, TensorOpsContext,
138    TensorShape,
139};
140pub use time_series::{
141    AdwinDriftDetector, DriftAdaptationStrategy, DriftStatistics, SeasonalComponents,
142    TemporalAggregationMethod, TimeSeriesCVStrategy, TimeSeriesEnsembleClassifier,
143    TimeSeriesEnsembleConfig, TimeSeriesEnsembleRegressor,
144};
145pub use voting::{
146    EnsembleMember, EnsembleSizeAnalysis, EnsembleSizeRecommendations, VotingClassifier,
147    VotingClassifierConfig, VotingStrategy,
148};
149
150/// Prelude module for convenient imports
151pub mod prelude {
152    pub use crate::adaboost::{AdaBoostAlgorithm, AdaBoostClassifier, AdaBoostConfig};
153    pub use crate::adversarial::{
154        AdversarialEnsembleClassifier, AdversarialEnsembleConfig, AdversarialPredictionResults,
155        AdversarialStrategy, AttackMethod, DefensiveStrategy, InputPreprocessing,
156        RobustnessMetrics,
157    };
158    pub use crate::analysis::{
159        CalibrationMetrics, ConfidenceMetrics, EnsembleAnalyzer, FeatureImportanceAnalysis,
160        ImportanceAggregationMethod, ReliabilityDiagram, UncertaintyDecomposition,
161        UncertaintyQuantification,
162    };
163    pub use crate::bagging::{BaggingClassifier, BaggingConfig, BaggingRegressor};
164    pub use crate::compression::{
165        AcquisitionFunction, BayesianEnsembleOptimizer, CompressedEnsemble, CompressionConfig,
166        CompressionMetadata, CompressionStats, CompressionStrategy, EnsembleCompressor,
167        EnsemblePruner, KnowledgeDistillationTrainer, QuantizationParams, SparsityInfo,
168    };
169    pub use crate::cpu_optimization::{
170        CacheOptimizedMatrixOps, CpuOptimizationConfig, CpuOptimizer, LoopOptimizedAlgorithms,
171        PerformanceCounters, VectorizedEnsembleOps,
172    };
173    pub use crate::gpu_acceleration::{
174        detect_available_backends, GpuBackend, GpuConfig, GpuContext, GpuDeviceInfo,
175        GpuEnsembleTrainer, GpuTensorOps, ProfilingResults,
176    };
177    pub use crate::gradient_boosting::{
178        FeatureImportanceMetrics, GradientBoostingClassifier, GradientBoostingConfig,
179        GradientBoostingRegressor, GradientBoostingTree, LossFunction,
180    };
181    pub use crate::imbalanced::{
182        CombinationStrategy, CostSensitiveConfig, ImbalancedEnsembleClassifier,
183        ImbalancedEnsembleConfig, SMOTEConfig, SMOTESampler, SamplingQualityMetrics,
184        SamplingResult, SamplingStrategy, ThresholdMovingStrategy,
185    };
186    pub use crate::memory_efficient::{
187        IncrementalLinearRegression, IncrementalModel, MemoryEfficientConfig,
188        MemoryEfficientEnsemble,
189    };
190    pub use crate::mixed_precision::{
191        AMPContext, GradientScaler, Half, MixedPrecisionArray, MixedPrecisionConfig,
192        MixedPrecisionGradientAccumulator, MixedPrecisionTrainer, ScalerState,
193    };
194    // TODO: Disabled due to ndarray 0.17 HRTB trait bound issues
195    // pub use crate::model_selection::{
196    //     BiasVarianceAnalyzer, BiasVarianceConfig, BiasVarianceDecomposition,
197    //     BiasVarianceEnsembleSizeAnalysis, DiversityAnalyzer, DiversityMetrics, EnsembleCVResults,
198    //     EnsembleCVStrategy, EnsembleConstructionConfig, EnsembleCrossValidator,
199    //     InterraterReliability, ModelSelectionLossFunction, SampleBiasVariance, ScoringMetric,
200    // };
201    pub use crate::monitoring::{
202        DegradationIndicators, DriftDetectionResult, DriftType, EnsembleMonitor, ModelHealth,
203        MonitoringConfig, MonitoringResults, PerformanceDataPoint, PerformanceMetric,
204        PerformanceTrend, RecommendedAction,
205    };
206    pub use crate::multi_label::{
207        LabelCorrelationMethod, LabelTransformationStrategy, MultiLabelAggregationMethod,
208        MultiLabelEnsembleClassifier, MultiLabelEnsembleConfig, MultiLabelPredictionResults,
209        MultiLabelTrainingResults,
210    };
211    pub use crate::multi_task::{
212        CrossTaskValidation, MultiTaskEnsembleClassifier, MultiTaskEnsembleConfig,
213        MultiTaskEnsembleRegressor, MultiTaskFeatureSelector, MultiTaskTrainingResults, TaskData,
214        TaskHierarchy, TaskMetrics, TaskSharingStrategy, TaskSimilarityMetric,
215        TaskWeightingStrategy,
216    };
217    pub use crate::parallel::{
218        AsyncEnsembleCoordinator, DataPartition, FederatedEnsembleCoordinator, ParallelConfig,
219        ParallelEnsembleTrainer, ParallelPerformanceMetrics, ParallelStrategy, ParallelTrainable,
220    };
221    pub use crate::regularized::{
222        DropoutEnsemble, OptimizerState, RegularizationStep, RegularizedEnsembleClassifier,
223        RegularizedEnsembleConfig, RegularizedEnsembleRegressor, WeightOptimizer,
224    };
225    pub use crate::simd_ops::SimdOps;
226    pub use crate::simd_stacking::{
227        simd_aggregate_predictions, simd_batch_linear_predictions, simd_compute_ensemble_diversity,
228        simd_compute_gradients, simd_dot_product, simd_generate_meta_features,
229        simd_linear_prediction, simd_train_stacking_ensemble, StackingEnsembleModel,
230    };
231    pub use crate::stacking::{
232        BaseEstimator, BlendingClassifier, MetaEstimator, MetaFeatureStrategy,
233        MetaLearningStrategy, MultiLayerStackingClassifier, MultiLayerStackingConfig,
234        SimpleStackingClassifier, StackingClassifier, StackingConfig, StackingLayerConfig,
235    };
236    pub use crate::streaming::{
237        AdaptiveStreamingEnsemble, ConceptDriftDetector, StreamingConfig, StreamingEnsemble,
238    };
239    pub use crate::tensor_ops::{
240        ActivationType, AggregationType, ComputationGraph, EnsembleTensorOps, GraphNode,
241        MemoryLayout, ReductionType, Tensor, TensorConfig, TensorDevice, TensorOperation,
242        TensorOpsContext, TensorShape,
243    };
244    pub use crate::time_series::{
245        AdwinDriftDetector, DriftAdaptationStrategy, DriftStatistics, SeasonalComponents,
246        TemporalAggregationMethod, TimeSeriesCVStrategy, TimeSeriesEnsembleClassifier,
247        TimeSeriesEnsembleConfig, TimeSeriesEnsembleRegressor,
248    };
249    pub use crate::voting::{
250        EnsembleMember, EnsembleSizeAnalysis, EnsembleSizeRecommendations, VotingClassifier,
251        VotingClassifierConfig, VotingStrategy,
252    };
253}