Skip to main content

sklears_multioutput/
lib.rs

1//! Multi-output regression and classification
2//!
3//! This module provides meta-estimators for multi-target prediction problems.
4//! It includes strategies for independent multi-output prediction.
5
6// #![warn(missing_docs)]
7
8pub mod activation;
9pub mod adversarial;
10pub mod chains;
11pub mod classification;
12pub mod core;
13pub mod correlation;
14pub mod ensemble;
15pub mod hierarchical;
16pub mod label_analysis;
17pub mod loss;
18pub mod metrics;
19pub mod mlp;
20pub mod multi_label;
21pub mod multitask;
22pub mod neighbors;
23pub mod neural;
24pub mod optimization;
25pub mod performance;
26pub mod probabilistic;
27pub mod ranking;
28pub mod recurrent;
29pub mod regularization;
30pub mod sequence;
31pub mod sparse_storage;
32pub mod streaming;
33pub mod svm;
34pub mod transfer_learning;
35pub mod tree;
36pub mod utilities;
37pub mod utils;
38
39// Use SciRS2-Core for arrays and random number generation (SciRS2 Policy)
40
41// Re-export core multi-output algorithms
42pub use core::{
43    MultiOutputClassifier, MultiOutputClassifierTrained, MultiOutputRegressor,
44    MultiOutputRegressorTrained,
45};
46
47// Re-export chain-based algorithms
48pub use chains::{
49    BayesianClassifierChain, BayesianClassifierChainTrained, ChainMethod, ClassifierChain,
50    ClassifierChainTrained, EnsembleOfChains, EnsembleOfChainsTrained, RegressorChain,
51    RegressorChainTrained,
52};
53
54// Re-export ensemble algorithms
55pub use ensemble::{GradientBoostingMultiOutput, GradientBoostingMultiOutputTrained, WeakLearner};
56
57// Re-export neural network algorithms
58pub use neural::{
59    ActivationFunction, AdversarialMultiTaskNetwork, AdversarialMultiTaskNetworkTrained,
60    AdversarialStrategy, CellType, GradientReversalConfig, LambdaSchedule, LossFunction,
61    MultiOutputMLP, MultiOutputMLPClassifier, MultiOutputMLPRegressor, MultiOutputMLPTrained,
62    MultiTaskNeuralNetwork, MultiTaskNeuralNetworkTrained, RecurrentNeuralNetwork,
63    RecurrentNeuralNetworkTrained, SequenceMode, TaskBalancing, TaskDiscriminator,
64};
65
66// Re-export adversarial learning types that are not in neural
67pub use adversarial::AdversarialConfig;
68
69// Re-export regularization algorithms
70pub use regularization::{
71    GroupLasso, GroupLassoTrained, MetaLearningMultiTask, MetaLearningMultiTaskTrained,
72    MultiTaskElasticNet, MultiTaskElasticNetTrained, NuclearNormRegression,
73    NuclearNormRegressionTrained, RegularizationStrategy, TaskClusteringRegressionTrained,
74    TaskClusteringRegularization, TaskRelationshipLearning, TaskRelationshipLearningTrained,
75    TaskSimilarityMethod,
76};
77
78// Re-export correlation and dependency analysis
79pub use correlation::{
80    CITestMethod, CITestResult, CITestResults, ConditionalIndependenceTester, CorrelationAnalysis,
81    CorrelationType, DependencyGraph, DependencyGraphBuilder, DependencyMethod, GraphStatistics,
82    OutputCorrelationAnalyzer,
83};
84
85// Re-export transfer learning algorithms
86pub use transfer_learning::{
87    ContinualLearning, ContinualLearningTrained, CrossTaskTransferLearning,
88    CrossTaskTransferLearningTrained, DomainAdaptation, DomainAdaptationTrained,
89    KnowledgeDistillation, KnowledgeDistillationTrained, ProgressiveTransferLearning,
90    ProgressiveTransferLearningTrained,
91};
92
93// Re-export optimization algorithms
94pub use optimization::{
95    JointLossConfig, JointLossOptimizer, JointLossOptimizerTrained, LossCombination,
96    LossFunction as OptimizationLossFunction, MultiObjectiveConfig, MultiObjectiveOptimizer,
97    MultiObjectiveOptimizerTrained, NSGA2Algorithm, NSGA2Config, NSGA2Optimizer,
98    NSGA2OptimizerTrained, ParetoSolution, ScalarizationConfig, ScalarizationMethod,
99    ScalarizationOptimizer, ScalarizationOptimizerTrained,
100};
101
102// Re-export probabilistic algorithms
103pub use probabilistic::{
104    BayesianMultiOutputConfig, BayesianMultiOutputModel, BayesianMultiOutputModelTrained,
105    EnsembleBayesianConfig, EnsembleBayesianModel, EnsembleBayesianModelTrained, EnsembleStrategy,
106    GaussianProcessMultiOutput, GaussianProcessMultiOutputTrained, InferenceMethod, KernelFunction,
107    PosteriorDistribution, PredictionWithUncertainty, PriorDistribution,
108};
109
110// Re-export ranking algorithms
111pub use ranking::{
112    BinaryClassifierModel, IndependentLabelPrediction, IndependentLabelPredictionTrained,
113    ThresholdStrategy as RankingThresholdStrategy,
114};
115
116// Re-export sparse storage algorithms
117pub use sparse_storage::{
118    sparse_utils, CSRMatrix, MemoryUsage, SparseMultiOutput, SparseMultiOutputTrained,
119    SparsityAnalysis, StorageRecommendation,
120};
121
122// Re-export streaming and incremental learning algorithms
123pub use streaming::{
124    IncrementalMultiOutputRegression, IncrementalMultiOutputRegressionConfig,
125    IncrementalMultiOutputRegressionTrained, StreamingMultiOutput, StreamingMultiOutputConfig,
126    StreamingMultiOutputTrained,
127};
128
129// Re-export performance optimization algorithms
130pub use performance::{
131    EarlyStopping, EarlyStoppingConfig, PredictionCache, WarmStartRegressor,
132    WarmStartRegressorConfig, WarmStartRegressorTrained,
133};
134
135// Re-export multi-label algorithms
136pub use multi_label::{
137    BinaryRelevance, BinaryRelevanceTrained, LabelPowerset, LabelPowersetTrained,
138    OneVsRestClassifier, OneVsRestClassifierTrained, PrunedLabelPowerset,
139    PrunedLabelPowersetTrained, PruningStrategy,
140};
141
142// Re-export tree-based algorithms
143pub use tree::{
144    ClassificationCriterion, DAGInferenceMethod, MultiTargetDecisionTreeClassifier,
145    MultiTargetDecisionTreeClassifierTrained, MultiTargetRegressionTree,
146    MultiTargetRegressionTreeTrained, RandomForestMultiOutput, RandomForestMultiOutputTrained,
147    TreeStructuredPredictor, TreeStructuredPredictorTrained,
148};
149
150// Re-export instance-based learning algorithms
151pub use neighbors::{IBLRTrained, WeightFunction, IBLR};
152
153// Re-export SVM algorithms
154pub use svm::{
155    MLTSVMTrained, MultiOutputSVM, MultiOutputSVMTrained, RankSVM, RankSVMTrained, RankingSVMModel,
156    SVMKernel, SVMModel, ThresholdStrategy as SVMThresholdStrategy, TwinSVMModel, MLTSVM,
157};
158
159// Re-export sequence/structured prediction algorithms
160pub use sequence::{
161    FeatureFunction, FeatureType, HiddenMarkovModel, HiddenMarkovModelTrained,
162    MaximumEntropyMarkovModel, MaximumEntropyMarkovModelTrained, StructuredPerceptron,
163    StructuredPerceptronTrained,
164};
165
166// Re-export hierarchical classification and graph neural network algorithms
167pub use hierarchical::{
168    AggregationFunction, ConsistencyEnforcement, CostSensitiveHierarchicalClassifier,
169    CostSensitiveHierarchicalClassifierTrained, CostStrategy, GraphNeuralNetwork,
170    GraphNeuralNetworkTrained, MessagePassingVariant, OntologyAwareClassifier,
171    OntologyAwareClassifierTrained,
172};
173
174// Re-export multi-label classification algorithms
175pub use classification::{
176    CalibratedBinaryRelevance, CalibratedBinaryRelevanceTrained, CalibrationMethod, CostMatrix,
177    CostSensitiveBinaryRelevance, CostSensitiveBinaryRelevanceTrained, DistanceMetric, MLkNN,
178    MLkNNTrained, RandomLabelCombinations, SimpleBinaryModel,
179};
180
181// Re-export comprehensive metrics and statistical testing functionality
182pub use metrics::{
183    average_precision_score,
184    confidence_interval,
185    coverage_error,
186    f1_score,
187    // Basic multi-label metrics
188    hamming_loss,
189    jaccard_score,
190    label_ranking_average_precision,
191    // Statistical significance testing
192    mcnemar_test,
193    one_error,
194    paired_t_test,
195    // Per-label performance metrics
196    per_label_metrics,
197    precision_score_micro,
198    ranking_loss,
199    recall_score_micro,
200
201    subset_accuracy,
202    wilcoxon_signed_rank_test,
203    ConfidenceInterval,
204    PerLabelMetrics,
205
206    StatisticalTestResult,
207};
208
209#[allow(non_snake_case)]
210#[cfg(test)]
211mod tests_core;
212
213#[allow(non_snake_case)]
214#[cfg(test)]
215mod tests_advanced;