欠采样器#
一个欠采样转换器,用于对数据集中的多数类进行降采样。
模块内容#
类摘要#
初始化一个欠采样转换器,用于对数据集中的多数类进行降采样。 |
内容#
- 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]#
初始化一个欠采样转换器,用于对数据集中的多数类进行降采样。
此组件仅在训练期间运行,不在预测期间运行。
- 参数
sampling_ratio (float) – 接受为“平衡”的最小少数类与多数类比例。例如,1:4 的比例表示为 0.25,而 1:1 的比例表示为 1.0。必须介于 0 和 1 之间(包含两端)。默认为 0.25。
sampling_ratio_dict (dict) – 一个字典,指定每个目标值的期望平衡比例。例如,在二分类中,如果类别 1 是少数类,我们可以指定:sampling_ratio_dict={0: 0.5, 1: 1},这意味着我们将对类别 0 进行欠采样,使其样本数量是类别 1 的两倍(少数类与多数类比例 = 0.5),并且不对类别 1 进行采样。如果提供,将覆盖 sampling_ratio。默认为 None。
min_samples (int) – 采样前或采样后,任何类必须拥有的最小样本数。如果某个类必须进行降采样,它不会降采样到低于此值。为了判断严重不平衡,少数类的出现次数必须少于此值,并且类比例必须低于 min_percentage。必须大于 0。默认为 100。
min_percentage (float) – 最小类占总数据集的最小百分比,只要它高于 min_samples,我们就可以容忍。如果 min_percentage 和 min_samples 均未满足,则将其视为严重不平衡,我们将不对数据进行重采样。必须介于 0 和 0.5 之间(包含两端)。默认为 0.1。
random_seed (int) – 用于随机采样的种子。默认为 0。
- 引发
ValueError – 如果 sampling_ratio 不在范围 (0, 1] 内。
ValueError – 如果 min_sample 不大于 0。
ValueError – 如果 min_percentage 不在 0 和 0.5 之间(包含两端)。
属性
hyperparameter_ranges
{}
modifies_features
True
modifies_target
True
名称
Undersampler
仅训练
True
方法
构建一个具有相同参数和随机状态的新组件。
返回此组件的默认参数。
描述组件及其参数。
将采样器拟合到数据。
此采样器的重采样技术。
使用采样器组件拟合并转换数据。
从文件路径加载组件。
返回布尔值,确定组件在调用 predict、predict_proba、transform 或 feature_importances 之前是否需要拟合。
返回用于初始化组件的参数。
将组件保存到文件路径。
通过对数据进行采样来转换输入数据。
更新组件的参数字典。
- clone(self)#
构建一个具有相同参数和随机状态的新组件。
- 返回
此组件具有相同参数和随机状态的新实例。
- default_parameters(cls)#
返回此组件的默认参数。
我们的约定是 Component.default_parameters == Component().parameters。
- 返回
此组件的默认参数。
- 返回类型
dict
- describe(self, print_name=False, return_dict=False)#
描述组件及其参数。
- 参数
print_name (bool, 可选) – 是否打印组件名称
return_dict (bool, 可选) – 是否将描述作为字典返回,格式为 {"name": name, "parameters": parameters}
- 返回
如果 return_dict 为 True,则返回字典,否则返回 None。
- 返回类型
None 或 dict
- fit(self, X, y)#
将采样器拟合到数据。
- 参数
X (pd.DataFrame) – 输入特征。
y (pd.Series) – 目标。
- 返回
self
- 引发
ValueError – 如果 y 为 None。
- fit_resample(self, X, y)[source]#
此采样器的重采样技术。
- 参数
X (pd.DataFrame) – 用于拟合和重采样的训练数据。
y (pd.Series) – 用于拟合和重采样的训练数据目标。
- 返回
为训练数据保留的索引。
- 返回类型
list
- fit_transform(self, X, y)#
使用采样器组件拟合并转换数据。
- 参数
X (pd.DataFrame) – 形状为 [n_samples, n_features] 的输入训练数据。
y (pd.Series, 可选) – 长度为 [n_samples] 的目标训练数据。
- 返回
转换后的数据。
- 返回类型
(pd.DataFrame, pd.Series)
- static load(file_path)#
从文件路径加载组件。
- 参数
file_path (str) – 文件加载位置。
- 返回
ComponentBase 对象
- needs_fitting(self)#
返回布尔值,确定组件在调用 predict、predict_proba、transform 或 feature_importances 之前是否需要拟合。
对于不需要拟合或其拟合方法不执行任何操作的组件,此方法可以重写为 False。
- 返回
True。
- property parameters(self)#
返回用于初始化组件的参数。
- save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#
将组件保存到文件路径。
- 参数
file_path (str) – 文件保存位置。
pickle_protocol (int) – pickle 数据流格式。
- transform(self, X, y=None)[source]#
通过对数据进行采样来转换输入数据。
- 参数
X (pd.DataFrame) – 训练特征。
y (pd.Series) – 目标。
- 返回
转换后的特征和目标。
- 返回类型
pd.DataFrame, pd.Series
- update_parameters(self, update_dict, reset_fit=True)#
更新组件的参数字典。
- 参数
update_dict (dict) – 要更新的参数字典。
reset_fit (bool, 可选) – 如果为 True,将设置 _is_fitted 为 False。