pub trait FeatureSelectionPlugin: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn version(&self) -> &str;
fn description(&self) -> &str;
fn metadata(&self) -> PluginMetadata;
fn fit(
&mut self,
X: ArrayView2<'_, f64>,
y: ArrayView1<'_, f64>,
) -> Result<()>;
fn transform(&self, X: ArrayView2<'_, f64>) -> Result<Array2<f64>>;
fn selected_features(&self) -> Result<Vec<usize>>;
fn feature_scores(&self) -> Result<Array1<f64>>;
fn is_fitted(&self) -> bool;
fn as_any(&self) -> &dyn Any;
fn clone_plugin(&self) -> Box<dyn FeatureSelectionPlugin>;
}Expand description
Core trait for feature selection plugins
Required Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Get the plugin description
Sourcefn metadata(&self) -> PluginMetadata
fn metadata(&self) -> PluginMetadata
Get plugin metadata
Sourcefn fit(&mut self, X: ArrayView2<'_, f64>, y: ArrayView1<'_, f64>) -> Result<()>
fn fit(&mut self, X: ArrayView2<'_, f64>, y: ArrayView1<'_, f64>) -> Result<()>
Fit the selector on training data
Sourcefn transform(&self, X: ArrayView2<'_, f64>) -> Result<Array2<f64>>
fn transform(&self, X: ArrayView2<'_, f64>) -> Result<Array2<f64>>
Transform data by selecting features
Sourcefn selected_features(&self) -> Result<Vec<usize>>
fn selected_features(&self) -> Result<Vec<usize>>
Get selected feature indices
Sourcefn feature_scores(&self) -> Result<Array1<f64>>
fn feature_scores(&self) -> Result<Array1<f64>>
Get feature scores/importances
Sourcefn clone_plugin(&self) -> Box<dyn FeatureSelectionPlugin>
fn clone_plugin(&self) -> Box<dyn FeatureSelectionPlugin>
Clone the plugin