pub struct SequentialFeatureSelector<E, State = Untrained> { /* private fields */ }Expand description
Sequential Feature Selection (forward, backward, or bidirectional)
Implements greedy, cross-validation-based sequential feature selection.
Uses the concrete-Fit macro pattern to avoid ndarray 0.17 HRTB issues
that arise with fully-generic Y parameters in where bounds.
Implementations§
Source§impl<E: Clone> SequentialFeatureSelector<E, Untrained>
impl<E: Clone> SequentialFeatureSelector<E, Untrained>
Sourcepub fn n_features_to_select(self, n: usize) -> Self
pub fn n_features_to_select(self, n: usize) -> Self
Set the number of features to select
Sourcepub fn direction(self, direction: &str) -> Result<Self, SklearsError>
pub fn direction(self, direction: &str) -> Result<Self, SklearsError>
Set the direction (“forward”, “backward”, or “bidirectional”)
Source§impl<E> SequentialFeatureSelector<E, Trained>
impl<E> SequentialFeatureSelector<E, Trained>
Sourcepub fn get_support(&self) -> SklResult<Array1<bool>>
pub fn get_support(&self) -> SklResult<Array1<bool>>
Get the support mask
Sourcepub fn get_feature_names_out(&self) -> SklResult<&[usize]>
pub fn get_feature_names_out(&self) -> SklResult<&[usize]>
Get the selected feature indices
Trait Implementations§
Source§impl<E> Estimator for SequentialFeatureSelector<E, Untrained>
impl<E> Estimator for SequentialFeatureSelector<E, Untrained>
Source§type Error = SklearsError
type Error = SklearsError
Error type for the estimator
Source§fn validate_config(&self) -> Result<(), SklearsError>
fn validate_config(&self) -> Result<(), SklearsError>
Validate estimator configuration with detailed error context
Source§fn check_compatibility(
&self,
n_samples: usize,
n_features: usize,
) -> Result<(), SklearsError>
fn check_compatibility( &self, n_samples: usize, n_features: usize, ) -> Result<(), SklearsError>
Check if estimator is compatible with given data dimensions
Source§fn metadata(&self) -> EstimatorMetadata
fn metadata(&self) -> EstimatorMetadata
Get estimator metadata
Source§impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>: IndexableTarget,
impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>: IndexableTarget,
Source§type Fitted = SequentialFeatureSelector<E, Trained>
type Fitted = SequentialFeatureSelector<E, Trained>
The fitted model type
Source§fn fit(
self,
x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>,
y: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>,
) -> SklResult<Self::Fitted>
fn fit( self, x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, y: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>, f64>, ) -> SklResult<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Source§impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>: IndexableTarget,
impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>: IndexableTarget,
Source§type Fitted = SequentialFeatureSelector<E, Trained>
type Fitted = SequentialFeatureSelector<E, Trained>
The fitted model type
Source§fn fit(
self,
x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>,
y: &ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>,
) -> SklResult<Self::Fitted>
fn fit( self, x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, y: &ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>, i32>, ) -> SklResult<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Source§impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>: IndexableTarget,
impl<E> Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>> for SequentialFeatureSelector<E, Untrained>where
E: Clone + Fit<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>> + Send + Sync,
E::Fitted: Score<ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>, Float = f64> + Send + Sync,
ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>: IndexableTarget,
Source§type Fitted = SequentialFeatureSelector<E, Trained>
type Fitted = SequentialFeatureSelector<E, Trained>
The fitted model type
Source§fn fit(
self,
x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>,
y: &ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>,
) -> SklResult<Self::Fitted>
fn fit( self, x: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>, f64>, y: &ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>, usize>, ) -> SklResult<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Auto Trait Implementations§
impl<E, State> Freeze for SequentialFeatureSelector<E, State>
impl<E, State> RefUnwindSafe for SequentialFeatureSelector<E, State>
impl<E, State> Send for SequentialFeatureSelector<E, State>
impl<E, State> Sync for SequentialFeatureSelector<E, State>
impl<E, State> Unpin for SequentialFeatureSelector<E, State>
impl<E, State> UnsafeUnpin for SequentialFeatureSelector<E, State>
impl<E, State> UnwindSafe for SequentialFeatureSelector<E, State>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> StableApi for Twhere
T: Estimator,
impl<T> StableApi for Twhere
T: Estimator,
Source§const STABLE_SINCE: &'static str = "0.1.0"
const STABLE_SINCE: &'static str = "0.1.0"
API version this type was stabilized in
Source§const HAS_EXPERIMENTAL_FEATURES: bool = false
const HAS_EXPERIMENTAL_FEATURES: bool = false
Whether this API has any experimental features
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.