sklears_decomposition/
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//! Matrix and tensor decomposition algorithms for dimensionality reduction
9//!
10//! This module provides various decomposition techniques including:
11//! - PCA: Principal Component Analysis with SVD (including Randomized SVD)
12//! - Incremental PCA: Memory-efficient PCA for large datasets
13//! - Kernel PCA: Non-linear dimensionality reduction using kernel methods
14//! - ICA: Independent Component Analysis (including constrained ICA)
15//! - NMF: Non-negative Matrix Factorization
16//! - Factor Analysis: Statistical model for latent variables
17//! - Dictionary Learning: Sparse coding and dictionary learning
18//! - Tensor Decomposition: CP (CANDECOMP/PARAFAC) and Tucker decomposition
19//! - Matrix Completion: Filling missing values using low-rank matrix completion
20//! - CCA: Canonical Correlation Analysis for finding linear relationships between two datasets
21//! - PLS: Partial Least Squares for regression and dimensionality reduction
22//! - Time Series: SSA, seasonal decomposition, and trend extraction
23//! - Signal Processing: EMD, spectral decomposition, and adaptive methods
24//! - Image & Computer Vision: 2D-PCA, image denoising, face recognition, texture analysis
25//! - Manifold Learning: LLE, Isomap, Laplacian Eigenmaps, t-SNE, UMAP
26//! - Component Selection: Cross-validation, bootstrap, information criteria, parallel analysis
27//! - Quality Metrics: Goodness-of-fit statistics, reconstruction quality, interpretability measures
28//! - Robust Methods: Robust PCA with L1 loss, M-estimators, outlier-resistant methods
29//! - Hardware Acceleration: SIMD optimizations, parallel processing, and mixed-precision arithmetic
30//! - Distributed Processing: Large-scale distributed decomposition across multiple nodes/workers
31//! - Scikit-learn Compatibility: Drop-in replacements for scikit-learn transformers with full API compatibility
32//! - Advanced Format Support: HDF5, sparse matrices, memory-mapped files, and compressed storage
33//! - Cache Optimization: Memory-aligned data structures, tiled algorithms, and performance analysis
34//! - Comprehensive Validation: Input validation, parameter checking, and result quality assessment
35//! - Modular Architecture: Pluggable algorithms, preprocessing pipelines, and extensible framework
36//! - Constrained Decomposition: Orthogonality, non-negativity, sparsity, and smoothness constraints
37//! - Type-Safe Decomposition: Zero-cost abstractions with compile-time dimension and rank checking
38
39// Import the s! macro from scirs2_core for array slicing
40#[allow(unused_imports)]
41pub use scirs2_core::s;
42
43pub mod cache_optimization;
44// TODO: Migrate to scirs2-linalg (uses nalgebra types)
45//pub mod cca;
46pub mod component_selection;
47pub mod constrained_decomposition;
48pub mod dictionary_learning;
49pub mod distributed;
50pub mod error_diagnostics;
51pub mod factor_analysis;
52pub mod fluent_api;
53// TODO: Migrate to scirs2-linalg (uses nalgebra types)
54//pub mod format_support;
55pub mod hardware_acceleration;
56pub mod ica;
57pub mod image_cv;
58pub mod integration;
59// TODO: Migrate to scirs2-linalg (uses nalgebra types)
60//pub mod incremental_pca;
61// TODO: Migrate to scirs2-linalg (uses nalgebra types)
62//pub mod kernel_pca;
63// TODO: Migrate to scirs2-linalg (uses nalgebra types)
64//pub mod manifold;
65// TODO: Migrate to scirs2-linalg (uses nalgebra types)
66//pub mod matrix_completion;
67pub mod memory_efficiency;
68pub mod modular_framework;
69pub mod nmf;
70pub mod online_nmf;
71pub mod pca;
72pub mod performance;
73// TODO: Migrate to scirs2-linalg (uses nalgebra types)
74//pub mod pls;
75pub mod quality_metrics;
76pub mod robust_methods;
77pub mod signal_processing;
78mod simd_signal;
79pub mod sklearn_compat;
80pub mod streaming;
81// TODO: Migrate to scirs2-linalg (uses nalgebra types)
82//pub mod tensor_decomposition;
83pub mod time_series;
84pub mod type_safe;
85pub mod validation;
86pub mod visualization;
87
88#[allow(non_snake_case)]
89#[cfg(test)]
90// TODO: Migrate to scirs2-linalg (uses nalgebra/ICA types)
91// pub mod property_tests;
92pub use cache_optimization::*;
93// TODO: Migrate to scirs2-linalg (uses nalgebra types)
94// pub use cca::*;
95pub use component_selection::*;
96pub use constrained_decomposition::*;
97pub use dictionary_learning::*;
98pub use distributed::*;
99pub use error_diagnostics::*;
100pub use factor_analysis::*;
101pub use fluent_api::*;
102// TODO: Migrate to scirs2-linalg (uses nalgebra types)
103// pub use format_support::*;
104pub use hardware_acceleration::{
105    AccelerationConfig, AlignedMemoryOps, MixedPrecisionOps, ParallelDecomposition, SimdMatrixOps,
106};
107#[cfg(feature = "gpu")]
108pub use hardware_acceleration::{GpuAcceleration, GpuDecomposition};
109pub use ica::*;
110pub use image_cv::*;
111pub use integration::*;
112// TODO: Migrate to scirs2-linalg (uses nalgebra types)
113// pub use incremental_pca::*;
114// TODO: Migrate to scirs2-linalg (uses nalgebra types)
115// pub use kernel_pca::*;
116// TODO: Migrate to scirs2-linalg (uses nalgebra types)
117// pub use manifold::*;
118// TODO: Migrate to scirs2-linalg (uses nalgebra types)
119// pub use matrix_completion::*;
120pub use memory_efficiency::*;
121// Re-export modular_framework excluding DecompositionAlgorithm enum and DecompositionPipeline struct to avoid conflicts
122pub use modular_framework::{
123    AlgorithmCapabilities, AlgorithmCapability, AlgorithmMetadata, AlgorithmRegistry,
124    ComputationalComplexity, DecompositionAlgorithm as DecompositionAlgorithmTrait,
125    DecompositionComponents, DecompositionParams, DecompositionWorkflowBuilder, MatrixProperty,
126    ParamValue, PostprocessingStep, PreprocessingStep, StandardizationStep, VarimaxRotationStep,
127};
128pub use nmf::*;
129pub use online_nmf::*;
130pub use pca::*;
131pub use performance::*;
132// TODO: Migrate to scirs2-linalg (uses nalgebra types)
133// pub use pls::*;
134pub use quality_metrics::*;
135pub use robust_methods::{
136    BreakdownPointAnalysis, BreakdownResult, LossFunction, MEstimatorDecomposition,
137    MEstimatorResult, RobustConfig, RobustPCAResult,
138};
139pub use signal_processing::*;
140// Re-export sklearn_compat with ParameterValue aliased to avoid conflict with validation
141pub use sklearn_compat::{
142    CrossValidation, GridSearchCV, ParameterValue as SklearnParameterValue, SklearnPCA,
143    SklearnPipeline, SklearnTransformer,
144};
145pub use streaming::*;
146// TODO: Migrate to scirs2-linalg (uses nalgebra types)
147// pub use tensor_decomposition::*;
148pub use time_series::*;
149// Re-export type_safe with DecompositionPipeline aliased to avoid conflict
150pub use type_safe::{
151    CenteringOperation, ComponentAccess, ComponentIndex, DecompositionOperation,
152    DecompositionPipeline as TypeSafeDecompositionPipeline, DecompositionState, Dimensions, Fitted,
153    Rank, ScalingOperation, TypeSafeDecomposition, TypeSafeMatrix, TypeSafePCA, Untrained,
154};
155pub use validation::*;
156pub use visualization::*;