pub struct VotingClassifier<F> {
pub max_depths: Vec<Option<usize>>,
pub min_samples_split: usize,
pub min_samples_leaf: usize,
pub criterion: ClassificationCriterion,
/* private fields */
}Expand description
Voting ensemble classifier.
Trains multiple decision tree classifiers with different hyperparameter configurations on the full dataset. Final predictions are made by majority vote across all trees.
Diversity is introduced by varying max_depth across the ensemble members.
If no explicit depths are provided, a default set of depths is used.
§Type Parameters
F: The floating-point type (f32orf64).
Fields§
§max_depths: Vec<Option<usize>>Maximum depth settings for each tree in the ensemble. Each entry produces one decision tree.
min_samples_split: usizeMinimum number of samples required to split an internal node.
min_samples_leaf: usizeMinimum number of samples required in a leaf node.
criterion: ClassificationCriterionSplitting criterion for all trees.
Implementations§
Source§impl<F: Float> VotingClassifier<F>
impl<F: Float> VotingClassifier<F>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new VotingClassifier with default settings.
Defaults: max_depths = [Some(2), Some(4), Some(6), None],
min_samples_split = 2, min_samples_leaf = 1, criterion = Gini.
Sourcepub fn with_max_depths(self, max_depths: Vec<Option<usize>>) -> Self
pub fn with_max_depths(self, max_depths: Vec<Option<usize>>) -> Self
Set the maximum depth settings for each ensemble member.
Each entry in the vector produces one decision tree.
Sourcepub fn with_min_samples_split(self, min_samples_split: usize) -> Self
pub fn with_min_samples_split(self, min_samples_split: usize) -> Self
Set the minimum number of samples required to split a node.
Sourcepub fn with_min_samples_leaf(self, min_samples_leaf: usize) -> Self
pub fn with_min_samples_leaf(self, min_samples_leaf: usize) -> Self
Set the minimum number of samples required in a leaf node.
Sourcepub fn with_criterion(self, criterion: ClassificationCriterion) -> Self
pub fn with_criterion(self, criterion: ClassificationCriterion) -> Self
Set the splitting criterion for all trees.
Trait Implementations§
Source§impl<F: Clone> Clone for VotingClassifier<F>
impl<F: Clone> Clone for VotingClassifier<F>
Source§fn clone(&self) -> VotingClassifier<F>
fn clone(&self) -> VotingClassifier<F>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<F: Debug> Debug for VotingClassifier<F>
impl<F: Debug> Debug for VotingClassifier<F>
Source§impl<F: Float> Default for VotingClassifier<F>
impl<F: Float> Default for VotingClassifier<F>
Source§impl<'de, F> Deserialize<'de> for VotingClassifier<F>
impl<'de, F> Deserialize<'de> for VotingClassifier<F>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<F: Float + Send + Sync + 'static> Fit<ArrayBase<OwnedRepr<F>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>>> for VotingClassifier<F>
impl<F: Float + Send + Sync + 'static> Fit<ArrayBase<OwnedRepr<F>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>>> for VotingClassifier<F>
Source§fn fit(
&self,
x: &Array2<F>,
y: &Array1<usize>,
) -> Result<FittedVotingClassifier<F>, FerroError>
fn fit( &self, x: &Array2<F>, y: &Array1<usize>, ) -> Result<FittedVotingClassifier<F>, FerroError>
Fit the voting classifier by training each decision tree on the full dataset.
§Errors
Returns FerroError::ShapeMismatch if x and y have different
numbers of samples.
Returns FerroError::InsufficientSamples if there are no samples.
Returns FerroError::InvalidParameter if configuration is invalid.
Source§type Fitted = FittedVotingClassifier<F>
type Fitted = FittedVotingClassifier<F>
fit.Source§type Error = FerroError
type Error = FerroError
fit.Source§impl<F: Float + ToPrimitive + FromPrimitive + Send + Sync + 'static> PipelineEstimator<F> for VotingClassifier<F>
impl<F: Float + ToPrimitive + FromPrimitive + Send + Sync + 'static> PipelineEstimator<F> for VotingClassifier<F>
Source§fn fit_pipeline(
&self,
x: &Array2<F>,
y: &Array1<F>,
) -> Result<Box<dyn FittedPipelineEstimator<F>>, FerroError>
fn fit_pipeline( &self, x: &Array2<F>, y: &Array1<F>, ) -> Result<Box<dyn FittedPipelineEstimator<F>>, FerroError>
Auto Trait Implementations§
impl<F> Freeze for VotingClassifier<F>
impl<F> RefUnwindSafe for VotingClassifier<F>where
F: RefUnwindSafe,
impl<F> Send for VotingClassifier<F>where
F: Send,
impl<F> Sync for VotingClassifier<F>where
F: Sync,
impl<F> Unpin for VotingClassifier<F>where
F: Unpin,
impl<F> UnsafeUnpin for VotingClassifier<F>
impl<F> UnwindSafe for VotingClassifier<F>where
F: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
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>
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>
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 more