采样器#

采样器组件。

包内容#

类摘要#

过采样器

SMOTE 过采样器组件。将根据组件输入自动选择使用 SMOTE、SMOTEN 或 SMOTENC。

欠采样器

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

目录#

class evalml.pipelines.components.transformers.samplers.Oversampler(sampling_ratio=0.25, sampling_ratio_dict=None, k_neighbors_default=5, n_jobs=-1, random_seed=0, **kwargs)[source]#

SMOTE 过采样器组件。将根据组件输入自动选择使用 SMOTE、SMOTEN 或 SMOTENC。

参数
  • sampling_ratio (float) – 这是少数类与多数类的目标比例,范围为 (0, 1]。值为 0.25 表示我们希望过采样后少数类与多数类的比例为 1:4。我们将使用此比例创建采样字典,其中键对应于类别,值对应于样本数量。默认为 0.25。

  • sampling_ratio_dict (dict) – 一个字典,指定每个目标值的所需平衡比例。例如,在二元分类中,如果类别 1 是少数类,我们可以指定:sampling_ratio_dict={0: 0.5, 1: 1},这意味着我们将欠采样类别 0,使其样本数量是类别 1 的两倍(少数类:多数类 比例 = 0.5),并且不采样类别 1。如果提供,则覆盖 sampling_ratio。默认为 None。

  • k_neighbors_default (int) – 用于构建合成样本的最近邻数量。这是使用的默认值,但如果样本较少,实际的 k_neighbors 值可能会更小。默认为 5。

  • n_jobs (int) – 要使用的 CPU 核数。默认为 -1。

  • random_seed (int) – 用于随机采样的种子。默认为 0。

属性

hyperparameter_ranges

modifies_features

True

modifies_target

True

name

过采样器

training_only

True

方法

clone

使用相同的参数和随机状态构造新组件。

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将过采样器拟合到数据。

fit_transform

使用采样器组件拟合和转换数据。

load

从文件路径加载组件。

needs_fitting

返回布尔值,确定在调用 predict、predict_proba、transform 或 feature_importances 之前组件是否需要拟合。

parameters

返回用于初始化组件的参数。

save

将组件保存到文件路径。

transform

通过对数据进行过采样来转换输入数据。

update_parameters

更新组件的参数字典。

clone(self)#

使用相同的参数和随机状态构造新组件。

返回

此组件的新实例,具有相同的参数和随机状态。

default_parameters(cls)#

返回此组件的默认参数。

我们的约定是 Component.default_parameters == Component().parameters。

返回

此组件的默认参数。

返回类型

dict

describe(self, print_name=False, return_dict=False)#

描述组件及其参数。

参数
  • print_name (bool, optional) – 是否打印组件名称

  • return_dict (bool, optional) – 是否以字典格式 {“name”: name, “parameters”: parameters} 返回描述

返回

如果 return_dict 为 True,则返回字典,否则返回 None。

返回类型

None 或 dict

fit(self, X, y)[source]#

将过采样器拟合到数据。

参数
  • X (pd.DataFrame) – 输入训练数据,形状为 [n_samples, n_features]。

  • y (pd.Series, optional) – 目标训练数据,长度为 [n_samples]。

返回

self

fit_transform(self, X, y)#

使用采样器组件拟合和转换数据。

参数
  • X (pd.DataFrame) – 输入训练数据,形状为 [n_samples, n_features]。

  • y (pd.Series, optional) – 目标训练数据,长度为 [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, optional) – 如果为 True,将设置 _is_fitted 为 False。

class evalml.pipelines.components.transformers.samplers.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

name

欠采样器

training_only

True

方法

clone

使用相同的参数和随机状态构造新组件。

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将采样器拟合到数据。

fit_resample

此采样器的重采样技术。

fit_transform

使用采样器组件拟合和转换数据。

load

从文件路径加载组件。

needs_fitting

返回布尔值,确定在调用 predict、predict_proba、transform 或 feature_importances 之前组件是否需要拟合。

parameters

返回用于初始化组件的参数。

save

将组件保存到文件路径。

transform

通过对数据进行采样来转换输入数据。

update_parameters

更新组件的参数字典。

clone(self)#

使用相同的参数和随机状态构造新组件。

返回

此组件的新实例,具有相同的参数和随机状态。

default_parameters(cls)#

返回此组件的默认参数。

我们的约定是 Component.default_parameters == Component().parameters。

返回

此组件的默认参数。

返回类型

dict

describe(self, print_name=False, return_dict=False)#

描述组件及其参数。

参数
  • print_name (bool, optional) – 是否打印组件名称

  • return_dict (bool, optional) – 是否以字典格式 {“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, optional) – 目标训练数据,长度为 [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, optional) – 如果为 True,将设置 _is_fitted 为 False。