欠采样器#

一个欠采样转换器,用于对数据集中的多数类进行降采样。

模块内容#

类摘要#

Undersampler

初始化一个欠采样转换器,用于对数据集中的多数类进行降采样。

内容#

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。