pub trait DecompositionAlgorithm: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn description(&self) -> &str;
fn capabilities(&self) -> AlgorithmCapabilities;
fn validate_params(&self, params: &DecompositionParams) -> Result<()>;
fn fit(
&mut self,
data: &Array2<Float>,
params: &DecompositionParams,
) -> Result<()>;
fn transform(&self, data: &Array2<Float>) -> Result<Array2<Float>>;
fn get_components(&self) -> Result<DecompositionComponents>;
fn is_fitted(&self) -> bool;
fn clone_algorithm(&self) -> Box<dyn DecompositionAlgorithm>;
fn as_any(&self) -> &dyn Any;
// Provided method
fn inverse_transform(&self, _data: &Array2<Float>) -> Result<Array2<Float>> { ... }
}Expand description
Core trait for decomposition algorithms
Required Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Get algorithm description
Sourcefn capabilities(&self) -> AlgorithmCapabilities
fn capabilities(&self) -> AlgorithmCapabilities
Get algorithm capabilities
Sourcefn validate_params(&self, params: &DecompositionParams) -> Result<()>
fn validate_params(&self, params: &DecompositionParams) -> Result<()>
Validate input parameters
Sourcefn fit(
&mut self,
data: &Array2<Float>,
params: &DecompositionParams,
) -> Result<()>
fn fit( &mut self, data: &Array2<Float>, params: &DecompositionParams, ) -> Result<()>
Fit the decomposition algorithm
Sourcefn transform(&self, data: &Array2<Float>) -> Result<Array2<Float>>
fn transform(&self, data: &Array2<Float>) -> Result<Array2<Float>>
Transform data using fitted algorithm
Sourcefn get_components(&self) -> Result<DecompositionComponents>
fn get_components(&self) -> Result<DecompositionComponents>
Get decomposition results/components
Sourcefn clone_algorithm(&self) -> Box<dyn DecompositionAlgorithm>
fn clone_algorithm(&self) -> Box<dyn DecompositionAlgorithm>
Clone the algorithm (for plugin system)