undersampler#
An undersampling transformer to downsample the majority classes in the dataset.
Module Contents#
Classes Summary#
Initializes an undersampling transformer to downsample the majority classes in the dataset. |
Contents#
- class evalml.pipelines.components.transformers.samplers.undersampler.Undersampler(sampling_ratio=0.25, sampling_ratio_dict=None, min_samples=100, min_percentage=0.1, random_seed=0, **kwargs)[source]#
Initializes an undersampling transformer to downsample the majority classes in the dataset.
This component is only run during training and not during predict.
- Parameters
sampling_ratio (float) – The smallest minority:majority ratio that is accepted as ‘balanced’. For instance, a 1:4 ratio would be represented as 0.25, while a 1:1 ratio is 1.0. Must be between 0 and 1, inclusive. Defaults to 0.25.
sampling_ratio_dict (dict) – A dictionary specifying the desired balanced ratio for each target value. For instance, in a binary case where class 1 is the minority, we could specify: sampling_ratio_dict={0: 0.5, 1: 1}, which means we would undersample class 0 to have twice the number of samples as class 1 (minority:majority ratio = 0.5), and don’t sample class 1. Overrides sampling_ratio if provided. Defaults to None.
min_samples (int) – The minimum number of samples that we must have for any class, pre or post sampling. If a class must be downsampled, it will not be downsampled past this value. To determine severe imbalance, the minority class must occur less often than this and must have a class ratio below min_percentage. Must be greater than 0. Defaults to 100.
min_percentage (float) – The minimum percentage of the minimum class to total dataset that we tolerate, as long as it is above min_samples. If min_percentage and min_samples are not met, treat this as severely imbalanced, and we will not resample the data. Must be between 0 and 0.5, inclusive. Defaults to 0.1.
random_seed (int) – The seed to use for random sampling. Defaults to 0.
- Raises
ValueError – If sampling_ratio is not in the range (0, 1].
ValueError – If min_sample is not greater than 0.
ValueError – If min_percentage is not between 0 and 0.5, inclusive.
Attributes
hyperparameter_ranges
{}
modifies_features
True
modifies_target
True
name
Undersampler
training_only
True
Methods
Constructs a new component with the same parameters and random state.
Returns the default parameters for this component.
Describe a component and its parameters.
Fits the sampler to the data.
Resampling technique for this sampler.
Fit and transform data using the sampler component.
Loads component at file path.
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
Returns the parameters which were used to initialize the component.
Saves component at file path.
Transforms the input data by sampling the data.
Updates the parameter dictionary of the component.
- clone(self)#
Constructs a new component with the same parameters and random state.
- Returns
A new instance of this component with identical parameters and random state.
- default_parameters(cls)#
Returns the default parameters for this component.
Our convention is that Component.default_parameters == Component().parameters.
- Returns
Default parameters for this component.
- Return type
dict
- describe(self, print_name=False, return_dict=False)#
Describe a component and its parameters.
- Parameters
print_name (bool, optional) – whether to print name of component
return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}
- Returns
Returns dictionary if return_dict is True, else None.
- Return type
None or dict
- fit(self, X, y)#
Fits the sampler to the data.
- Parameters
X (pd.DataFrame) – Input features.
y (pd.Series) – Target.
- Returns
self
- Raises
ValueError – If y is None.
- fit_resample(self, X, y)[source]#
Resampling technique for this sampler.
- Parameters
X (pd.DataFrame) – Training data to fit and resample.
y (pd.Series) – Training data targets to fit and resample.
- Returns
Indices to keep for training data.
- Return type
list
- fit_transform(self, X, y)#
Fit and transform data using the sampler component.
- Parameters
X (pd.DataFrame) – The input training data of shape [n_samples, n_features].
y (pd.Series, optional) – The target training data of length [n_samples].
- Returns
Transformed data.
- Return type
(pd.DataFrame, pd.Series)
- static load(file_path)#
Loads component at file path.
- Parameters
file_path (str) – Location to load file.
- Returns
ComponentBase object
- needs_fitting(self)#
Returns boolean determining if component needs fitting before calling predict, predict_proba, transform, or feature_importances.
This can be overridden to False for components that do not need to be fit or whose fit methods do nothing.
- Returns
True.
- property parameters(self)#
Returns the parameters which were used to initialize the component.
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
Saves component at file path.
- Parameters
file_path (str) – Location to save file.
pickle_protocol (int) – The pickle data stream format.
- transform(self, X, y=None)[source]#
Transforms the input data by sampling the data.
- Parameters
X (pd.DataFrame) – Training features.
y (pd.Series) – Target.
- Returns
Transformed features and target.
- Return type
pd.DataFrame, pd.Series
- update_parameters(self, update_dict, reset_fit=True)#
Updates the parameter dictionary of the component.
- Parameters
update_dict (dict) – A dict of parameters to update.
reset_fit (bool, optional) – If True, will set _is_fitted to False.