sklears_compose/ensemble/mod.rs
1//! Ensemble methods module
2//!
3//! This module provides various ensemble methods including voting, stacking,
4//! dynamic selection, model fusion, and hierarchical composition.
5
6pub mod common;
7pub mod dynamic_selection;
8pub mod voting;
9// TODO: Add these modules when created:
10// pub mod model_fusion;
11// pub mod hierarchical;
12// pub mod stacking;
13
14// Re-export commonly used items
15pub use common::{simd_fallback, ActivationFunction, EnsembleStatistics};
16pub use dynamic_selection::{
17 CompetenceEstimation, DynamicEnsembleSelector, DynamicEnsembleSelectorBuilder,
18 DynamicEnsembleSelectorTrained, SelectionStrategy,
19};
20pub use voting::{
21 VotingClassifier, VotingClassifierBuilder, VotingClassifierTrained, VotingRegressor,
22 VotingRegressorBuilder, VotingRegressorTrained,
23};
24
25// TODO: Re-export when modules are created:
26// pub use model_fusion::*;
27// pub use hierarchical::*;
28// pub use stacking::*;
29
30// Temporary placeholder types to maintain compilation
31// These should be replaced with proper implementations from dedicated modules
32
33/// Placeholder for `FusionStrategy` (to be implemented in `model_fusion` module)
34#[derive(Debug, Clone)]
35pub enum FusionStrategy {
36 /// Average
37 Average,
38 /// Weighted
39 Weighted,
40 /// Stacking
41 Stacking,
42}
43
44/// Placeholder for `HierarchicalComposition` (to be implemented in hierarchical module)
45pub struct HierarchicalComposition<S = sklears_core::traits::Untrained> {
46 _phantom: std::marker::PhantomData<S>,
47}
48
49/// Placeholder for `HierarchicalCompositionTrained`
50pub struct HierarchicalCompositionTrained;
51
52/// Placeholder for `HierarchicalCompositionBuilder`
53pub struct HierarchicalCompositionBuilder;
54
55/// Placeholder for `HierarchicalNode`
56pub struct HierarchicalNode;
57
58/// Placeholder for `HierarchicalStrategy`
59#[derive(Debug, Clone)]
60pub enum HierarchicalStrategy {
61 /// TopDown
62 TopDown,
63 /// BottomUp
64 BottomUp,
65}
66
67/// Placeholder for `ModelFusion`
68pub struct ModelFusion<S = sklears_core::traits::Untrained> {
69 _phantom: std::marker::PhantomData<S>,
70}
71
72/// Placeholder for `ModelFusionTrained`
73pub struct ModelFusionTrained;
74
75/// Placeholder for `ModelFusionBuilder`
76pub struct ModelFusionBuilder;