sklears_model_selection/
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//! Model selection utilities for sklears
9
10mod adaptive_resource_allocation;
11mod adversarial_validation;
12mod automl_algorithm_selection;
13mod automl_feature_engineering;
14mod automl_pipeline;
15// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
16// mod bandit_optimization;
17mod bayes_search;
18mod bayesian_model_averaging;
19mod bayesian_model_selection;
20mod bias_variance;
21mod config_management;
22mod conformal_prediction;
23mod cross_validation;
24mod cv;
25mod cv_model_selection;
26mod drift_detection;
27mod early_stopping;
28mod ensemble_evaluation;
29mod ensemble_selection;
30mod epistemic_uncertainty;
31// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
32// mod evolutionary;
33mod grid_search;
34mod halving_grid_search;
35mod hierarchical_validation;
36mod hyperparameter_importance;
37mod imbalanced_validation;
38mod incremental_evaluation;
39mod information_criteria;
40mod memory_efficient;
41mod meta_learning;
42mod meta_learning_advanced;
43mod model_comparison;
44mod model_complexity;
45mod multi_fidelity_advanced;
46mod multi_fidelity_optimization;
47mod multilabel_validation;
48mod neural_architecture_search;
49mod noise_injection;
50mod ood_validation;
51mod optimizer_plugins;
52mod parallel_optimization;
53mod parameter_space;
54// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
55// mod population_based_training;
56mod scoring;
57mod spatial_validation;
58mod temporal_validation;
59mod threshold_tuning;
60mod train_test_split;
61mod validation;
62mod warm_start;
63mod worst_case_validation;
64
65pub use adaptive_resource_allocation::{
66    AdaptiveAllocationConfig, AdaptiveResourceAllocator, AllocationStatistics, AllocationStrategy,
67    ResourceConfiguration,
68};
69pub use adversarial_validation::{
70    AdversarialStatistics, AdversarialValidationConfig, AdversarialValidationResult,
71    AdversarialValidator,
72};
73pub use automl_algorithm_selection::{
74    select_best_algorithm, AlgorithmFamily, AlgorithmSelectionResult, AlgorithmSpec,
75    AutoMLAlgorithmSelector, AutoMLConfig, ComputationalConstraints,
76    DatasetCharacteristics as AutoMLDatasetCharacteristics, RankedAlgorithm, TargetStatistics,
77};
78pub use automl_feature_engineering::{
79    engineer_features, AutoFeatureEngineer, AutoFeatureEngineering, FeatureEngineeringResult,
80    FeatureEngineeringStrategy, FeatureSelectionMethod, FeatureStatistics,
81    FeatureTransformationType, GeneratedFeature, TransformationInfo,
82};
83pub use automl_pipeline::{
84    automl, automl_with_budget, AutoMLPipeline, AutoMLPipelineConfig, AutoMLPipelineResult,
85    AutoMLProgressCallback, AutoMLStage, ConsoleProgressCallback, OptimizationLevel,
86};
87// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
88// pub use bandit_optimization::{
89//     BanditConfig, BanditOptimization, BanditOptimizationResult, BanditSearchCV, BanditStrategy,
90// };
91pub use bayes_search::{
92    AcquisitionFunction as BayesAcquisitionFunction, BayesSearchCV, BayesSearchConfig,
93    ParamDistribution as BayesParamDistribution, TPEConfig, TPEOptimizer,
94};
95pub use bayesian_model_averaging::{
96    bayesian_model_average, BMAConfig, BMAResult, BayesianModelAverager as BMA_Averager,
97    EvidenceMethod, ModelInfo as BMA_ModelInfo, PriorType,
98};
99pub use bayesian_model_selection::{
100    BayesianModelAverager as BayesianModelSelector_BA, BayesianModelSelectionResult,
101    BayesianModelSelector, EvidenceEstimationMethod, ModelEvidenceData,
102};
103pub use bias_variance::{
104    bias_variance_decompose, BiasVarianceAnalyzer, BiasVarianceConfig, BiasVarianceResult,
105    SampleBiasVariance,
106};
107pub use config_management::{
108    ConfigError, ConfigManager, CrossValidationConfig as CVConfig, EarlyStoppingConfig as ESConfig,
109    ModelSelectionConfig, OptimizationConfig as OptiConfig, ParameterDefinition, ResourceConfig,
110    ScoringConfig as ScoreConfig,
111};
112pub use conformal_prediction::{
113    ConformalPredictionConfig, ConformalPredictionResult, ConformalPredictor, CoverageStatistics,
114    EfficiencyMetrics, JackknifeConformalPredictor, NonconformityMethod,
115};
116pub use cross_validation::{
117    BlockCrossValidator, BlockedTimeSeriesCV, BootstrapCV, CrossValidator, CustomCrossValidator,
118    GroupKFold, GroupShuffleSplit, GroupStrategy, KFold, LeaveOneGroupOut, LeaveOneOut,
119    LeavePGroupsOut, LeavePOut, MonteCarloCV, PredefinedSplit, PurgedGroupTimeSeriesSplit,
120    RegressionCrossValidator, RepeatedKFold, RepeatedStratifiedKFold, ShuffleSplit,
121    StratifiedGroupKFold, StratifiedKFold, StratifiedRegressionKFold, StratifiedShuffleSplit,
122    TimeSeriesSplit,
123};
124pub use cv_model_selection::{
125    cv_select_model, CVModelScore, CVModelSelectionConfig, CVModelSelectionResult, CVModelSelector,
126    ModelComparisonPair, ModelRanking, ModelSelectionCriteria,
127};
128pub use drift_detection::{
129    DriftDetectionConfig, DriftDetectionMethod, DriftDetectionResult, DriftDetector,
130    DriftStatistics,
131};
132pub use early_stopping::{
133    AdaptationConfig, AdaptiveEarlyStopping, ConvergenceMetrics, EarlyStoppingCallback,
134    EarlyStoppingConfig, EarlyStoppingMonitor, EarlyStoppingStrategy,
135};
136pub use ensemble_evaluation::{
137    evaluate_ensemble, DiversityAnalysis, DiversityMeasure, EnsembleEvaluationConfig,
138    EnsembleEvaluationResult, EnsembleEvaluationStrategy, EnsembleEvaluator,
139    EnsemblePerformanceMetrics, MemberContribution, MultiObjectiveAnalysis, OutOfBagScores,
140    ProgressivePerformance, StabilityAnalysis, StabilityMetric,
141};
142pub use ensemble_selection::{
143    select_ensemble, DiversityMeasures, EnsemblePerformance, EnsembleSelectionConfig,
144    EnsembleSelectionResult, EnsembleSelector, EnsembleStrategy, ModelInfo as EnsembleModelInfo,
145    ModelPerformance,
146};
147pub use epistemic_uncertainty::{
148    quantify_aleatoric_uncertainty, quantify_epistemic_uncertainty, quantify_uncertainty,
149    AleatoricUncertaintyConfig, AleatoricUncertaintyMethod, AleatoricUncertaintyQuantifier,
150    AleatoricUncertaintyResult, CalibrationMethod, EpistemicUncertaintyConfig,
151    EpistemicUncertaintyMethod, EpistemicUncertaintyQuantifier, EpistemicUncertaintyResult,
152    ReliabilityDiagram, ReliabilityMetrics, UncertaintyComponents, UncertaintyDecomposition,
153    UncertaintyDecompositionMethod, UncertaintyQuantificationConfig,
154    UncertaintyQuantificationResult, UncertaintyQuantifier,
155};
156// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
157// pub use evolutionary::{
158//     EvolutionarySearchCV, EvolutionarySearchResult, GeneticAlgorithmCV, GeneticAlgorithmConfig,
159//     GeneticAlgorithmResult, Individual, MultiObjectiveGA, MultiObjectiveResult, ParameterDef,
160//     ParameterSpace as EvolutionaryParameterSpace,
161// };
162pub use grid_search::{
163    GridSearchCV, GridSearchResults, ParameterDistribution, ParameterDistributions, ParameterGrid,
164    ParameterSet, ParameterValue as GridParameterValue, RandomizedSearchCV,
165};
166pub use halving_grid_search::{
167    HalvingGridSearch, HalvingGridSearchConfig, HalvingGridSearchResults, HalvingRandomSearchCV,
168};
169pub use hierarchical_validation::{
170    hierarchical_cross_validate, ClusterInfo, HierarchicalCrossValidator, HierarchicalSplit,
171    HierarchicalStrategy, HierarchicalValidationConfig, HierarchicalValidationResult,
172};
173pub use hyperparameter_importance::{
174    analyze_parameter_sensitivity, compute_shap_importance, AblationAnalyzer, AblationConfig,
175    AblationResult, ComprehensiveImportanceResult, FANOVAAnalyzer, FANOVAConfig, FANOVAResult,
176    HyperparameterImportanceAnalyzer, ParameterSensitivity, SHAPAnalyzer, SHAPConfig, SHAPResult,
177    SensitivityAnalyzer, SensitivityConfig, SensitivityResult,
178};
179pub use imbalanced_validation::{
180    imbalanced_cross_validate, ClassStatistics, ImbalancedCrossValidator, ImbalancedSplit,
181    ImbalancedStrategy, ImbalancedValidationConfig, ImbalancedValidationResult, SamplingStrategy,
182};
183pub use incremental_evaluation::{
184    evaluate_incremental_stream, AdaptationCriterion, ConceptDriftHandling, DriftDetectorType,
185    DriftEvent, DriftType, FoldUpdateStrategy, IncrementalEvaluationConfig,
186    IncrementalEvaluationResult, IncrementalEvaluationStrategy, IncrementalEvaluator,
187    PerformanceSnapshot, StreamingStatistics,
188};
189pub use information_criteria::{
190    CrossValidatedIC, InformationCriterion, InformationCriterionCalculator,
191    InformationCriterionResult, ModelComparisonResult as ICModelComparisonResult,
192};
193pub use memory_efficient::{
194    memory_efficient_cross_validate, DataChunk, MemoryEfficiencyStats, MemoryEfficientConfig,
195    MemoryEfficientCrossValidator, MemoryError, MemoryPool, MemorySnapshot, MemoryTracker,
196    StreamingDataReader, StreamingEvaluationResult,
197};
198pub use meta_learning::{
199    meta_learning_recommend, ComplexityMeasures, DatasetCharacteristics, FeatureType,
200    MetaLearningConfig, MetaLearningEngine, MetaLearningRecommendation, MetaLearningStrategy,
201    OptimizationRecord, ParameterValue, SimilarityMetric, StatisticalMeasures, SurrogateModel,
202    TransferMethod,
203};
204pub use meta_learning_advanced::{
205    Experience as OptimizationExperience_Advanced, ExperienceReplayBuffer, ExperienceReplayConfig,
206    FewShotAlgorithm, FewShotConfig, FewShotOptimizer, FewShotResult, ImportanceWeightingMethod,
207    Learn2OptimizeConfig, Learn2OptimizeResult, LearnedOptimizer,
208    OptimizationExperience as MetaOptimizationExperience, OptimizationLearner,
209    OptimizationTask as MetaOptimizationTask, OptimizerArchitecture,
210    ParameterRange as MetaParameterRange, ParameterScale, PrioritizationStrategy, ReplayResult,
211    SamplingStrategy as ReplaySamplingStrategy, TaskCharacteristics as MetaTaskCharacteristics,
212    TransferLearningConfig, TransferLearningOptimizer, TransferResult, TransferStrategy,
213};
214pub use model_comparison::{
215    friedman_test, mcnemar_test, multiple_model_comparison, nemenyi_post_hoc_test, paired_t_test,
216    wilcoxon_signed_rank_test, ModelComparisonResult, MultipleTestingCorrection,
217    StatisticalTestResult,
218};
219pub use model_complexity::{
220    analyze_model_complexity, detect_overfitting_learning_curve, ComplexityAnalysisConfig,
221    ComplexityAnalysisResult, ComplexityMeasure, ComplexityRecommendation, ModelComplexityAnalyzer,
222    OverfittingDetector,
223};
224pub use multi_fidelity_advanced::{
225    AdaptiveFidelitySelector, AdaptiveFidelityStrategy, AllocationPlan, BudgetAllocationStrategy,
226    BudgetAllocator, CoarseToFineConfig, CoarseToFineOptimizer, CoarseToFineResult,
227    CoarseToFineStrategy, ConfigAllocation, ConfigurationWithPerformance,
228    ProgressiveAllocationConfig, ProgressiveAllocationStrategy, ProgressiveAllocator,
229};
230pub use multi_fidelity_optimization::{
231    multi_fidelity_optimize, AcquisitionFunction, CorrelationModel, CostModel, FidelityEvaluation,
232    FidelityLevel, FidelityProgression, FidelitySelectionMethod, MultiFidelityConfig,
233    MultiFidelityOptimizer, MultiFidelityResult, MultiFidelityStrategy,
234};
235pub use multilabel_validation::{
236    multilabel_cross_validate, LabelStatistics, MultiLabelCrossValidator, MultiLabelSplit,
237    MultiLabelStrategy, MultiLabelValidationConfig, MultiLabelValidationResult,
238};
239pub use neural_architecture_search::{
240    ArchitectureEvaluation, ArchitectureSearchSpace, NASConfig, NASOptimizer, NASResult,
241    NASStrategy, NeuralArchitecture,
242};
243pub use noise_injection::{
244    robustness_test, AdversarialMethod, NoiseConfig, NoiseInjector, NoiseStatistics, NoiseType,
245    RobustnessTestResult,
246};
247pub use ood_validation::{
248    validate_ood, DistributionShiftMetrics, OODConfidenceIntervals, OODDetectionMethod,
249    OODValidationConfig, OODValidationResult, OODValidator,
250};
251pub use optimizer_plugins::{
252    CustomMetric, Evaluation, HookError, HookManager, LoggingHook, MetricError, MetricRegistry,
253    MiddlewareError, MiddlewarePipeline, NormalizationMiddleware,
254    OptimizationHistory as PluginOptimizationHistory, OptimizationHook, OptimizationMiddleware,
255    OptimizerPlugin, ParameterConstraints as PluginParameterConstraints, PluginConfig, PluginError,
256    PluginFactory, PluginRegistry, StopReason,
257};
258pub use parallel_optimization::{
259    parallel_optimize, BatchAcquisitionStrategy, CommunicationProtocol, ErrorHandlingStrategy,
260    EvaluationResult, LoadBalancingStrategy, ParallelOptimizationConfig,
261    ParallelOptimizationResult, ParallelOptimizer, ParallelStrategy, ProgressReportingConfig,
262    ResourceUtilization, SynchronizationStrategy, WorkerStatistics,
263};
264pub use parameter_space::{
265    CategoricalParameter, ConditionalParameter, ParameterConstraint, ParameterImportanceAnalyzer,
266    ParameterSpace,
267};
268// TODO: Temporarily disabled until ndarray 0.17 HRTB trait bound issues are resolved
269// pub use population_based_training::{
270//     PBTConfig, PBTConfigFn, PBTParameterSpace, PBTParameters, PBTResult, PBTStatistics, PBTWorker,
271//     PopulationBasedTraining, PopulationBasedTrainingCV,
272// };
273pub use scoring::{
274    paired_ttest, ClosureScorer, CustomScorer, EnhancedScorer, ScorerRegistry, ScoringConfig,
275    ScoringResult, SignificanceTestResult, TaskType,
276};
277pub use spatial_validation::{
278    DistanceMethod, LeaveOneRegionOut, SpatialClusteringMethod, SpatialCoordinate,
279    SpatialCrossValidator, SpatialValidationConfig,
280};
281pub use temporal_validation::{
282    BlockedTemporalCV, SeasonalCrossValidator, TemporalCrossValidator, TemporalValidationConfig,
283};
284pub use threshold_tuning::{
285    optimize_threshold, FixedThresholdClassifier, OptimizationMetric, ThresholdOptimizationResult,
286    TunedThresholdClassifierCV, TunedThresholdClassifierCVTrained,
287};
288pub use train_test_split::train_test_split;
289pub use validation::{
290    cross_val_predict, cross_val_score, cross_validate, learning_curve, nested_cross_validate,
291    permutation_test_score, validation_curve, CrossValidateResult, LearningCurveResult,
292    NestedCVResult, ParamConfigFn, PermutationTestResult, Scoring, ValidationCurveResult,
293};
294pub use warm_start::{
295    EvaluationRecord, OptimizationHistory, OptimizationStatistics, TransferLearning,
296    WarmStartConfig, WarmStartInitializer, WarmStartStrategy,
297};
298pub use worst_case_validation::{
299    worst_case_validate, AdversarialAttackMethod, CorruptionType, DistributionShiftType,
300    DriftPattern, MissingPattern, NoisePattern, RobustnessMetrics, ScenarioResult,
301    WorstCaseScenario, WorstCaseScenarioGenerator, WorstCaseValidationConfig,
302    WorstCaseValidationResult, WorstCaseValidator,
303};