编码器#

用于编码输入数据的组件。

包内容#

类摘要#

LabelEncoder

一种将目标标签编码为 0 到 num_classes - 1 之间数值的转换器。

OneHotEncoder

一种将分类特征编码为独热数字数组的转换器。

OrdinalEncoder

一种将顺序特征编码为表示类别相对顺序的顺序整数数组的转换器。

TargetEncoder

一种将分类特征编码为目标编码的转换器。

目录#

class evalml.pipelines.components.transformers.encoders.LabelEncoder(positive_label=None, random_seed=0, **kwargs)[source]#

一种将目标标签编码为 0 到 num_classes - 1 之间数值的转换器。

参数
  • positive_label (int, str) – 对于二元分类问题,应被视为正类 (1) 的标签。对于多类问题忽略。默认为 None。

  • random_seed (int) – 随机数生成器的种子。默认为 0。忽略。

属性

hyperparameter_ranges

{}

modifies_features

False

modifies_target

True

name

标签编码器

training_only

False

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述一个组件及其参数。

fit

拟合标签编码器。

fit_transform

使用标签编码器拟合并转换数据。

inverse_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, 可选) – 是否打印组件名称

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

返回

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

返回类型

None or dict

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

拟合标签编码器。

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

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

返回

self

抛出

ValueError – 如果输入 y 为 None。

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

使用标签编码器拟合并转换数据。

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

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

返回

原始特征和目标数据的编码版本。

返回类型

pd.DataFrame, pd.Series

inverse_transform(self, y)[source]#

解码目标数据。

参数

y (pd.Series) – 目标数据。

返回

目标的解码版本。

返回类型

pd.Series

抛出

ValueError – 如果输入 y 为 None。

static load(file_path)#

从文件路径加载组件。

参数

file_path (str) – 加载文件的位置。

返回

ComponentBase object

needs_fitting(self)#

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

对于不需要拟合或其 fit 方法不执行任何操作的组件,此值可以被覆盖为 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) – 输入训练数据,形状为 [n_samples, n_features]。忽略。

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

返回

原始特征和目标数据的编码版本。

返回类型

pd.DataFrame, pd.Series

抛出

ValueError – 如果输入 y 为 None。

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

参数
  • update_dict (dict) – 要更新的参数字典。

  • reset_fit (bool, 可选) – 如果为 True,将设置 _is_fitted 为 False。

class evalml.pipelines.components.transformers.encoders.OneHotEncoder(top_n=10, features_to_encode=None, categories=None, drop='if_binary', handle_unknown='ignore', handle_missing='error', random_seed=0, **kwargs)[source]#

一种将分类特征编码为独热数字数组的转换器。

参数
  • top_n (int) – 每列要编码的类别数。如果为 None,则编码所有类别。否则,将编码最常出现的 n 个类别,其余类别将被丢弃。默认为 10。

  • features_to_encode (list[str]) – 要编码的列列表。所有其他列将保持不变。如果为 None,将编码所有合适的列。默认为 None。

  • categories (list) – 一个二维类别列表,其中 categories[i] 是索引为 i 的列的类别列表。如果 top_n 不为 None,此项也可以是 None“auto”。默认为 None。

  • drop (string, list) – 用于丢弃每个特征一个类别的方法(“first” 或 “if_binary”)。也可以是一个列表,指定要为每个特征丢弃哪些类别。默认为 ‘if_binary’。

  • handle_unknown (string) – 在 fittransform 期间遇到未知类别时是忽略还是抛出错误。如果使用 top_ncategories 来限制每列的类别数,此项必须为 “ignore”。默认为 “ignore”。

  • handle_missing (string) – 在 fittransform 期间遇到缺失值 (NaN) 时的处理选项。如果设置为 “as_category” 且 NaN 值在前 n 个最常出现的值中,则 “nan” 值将编码为单独一列。如果设置为 “error”,遇到的任何缺失值将抛出错误。默认为 “error”。

  • random_seed (int) – 随机数生成器的种子。默认为 0。

属性

hyperparameter_ranges

{}

modifies_features

True

modifies_target

False

name

独热编码器

training_only

False

方法

categories

按顺序返回要为特定特征编码的唯一类别列表。

clone

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

default_parameters

返回此组件的默认参数。

describe

描述一个组件及其参数。

fit

拟合独热编码器组件。

fit_transform

在 X 上拟合并转换 X。

get_feature_names

拟合后返回分类特征的特征名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

对输入数据进行独热编码。

update_parameters

更新组件的参数字典。

categories(self, feature_name)[source]#

按顺序返回要为特定特征编码的唯一类别列表。

参数

feature_name (str) – 在拟合期间提供给独热编码器的任何特征的名称。

返回

唯一类别,与拟合期间提供时的 dtype 相同。

返回类型

np.ndarray

抛出

ValueError – 如果该特征在训练时未提供给独热编码器。

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 or dict

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

拟合独热编码器组件。

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

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

返回

self

抛出

ValueError – 如果编码列失败。

fit_transform(self, X, y=None)#

在 X 上拟合并转换 X。

参数
  • X (pd.DataFrame) – 要拟合和转换的数据。

  • y (pd.Series) – 目标数据。

返回

转换后的 X。

返回类型

pd.DataFrame

抛出

MethodPropertyNotFoundError – 如果转换器没有 transform 方法或 component_obj 没有实现 transform 方法。

get_feature_names(self)[source]#

拟合后返回分类特征的特征名称。

特征名称格式为 {列名}_{类别名称}。如果名称重复,将在特征名称末尾添加一个整数以区分。

例如,考虑一个数据框,其中一列名为“A”,类别为“x_y”,另一列名为“A_x”,类别为“y”。在此示例中,特征名称将是“A_x_y”和“A_x_y_1”。

返回

编码后的特征名称,按 input_features 的相同顺序提供。

返回类型

np.ndarray

static load(file_path)#

从文件路径加载组件。

参数

file_path (str) – 加载文件的位置。

返回

ComponentBase object

needs_fitting(self)#

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

对于不需要拟合或其 fit 方法不执行任何操作的组件,此值可以被覆盖为 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

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

参数
  • update_dict (dict) – 要更新的参数字典。

  • reset_fit (bool, 可选) – 如果为 True,将设置 _is_fitted 为 False。

class evalml.pipelines.components.transformers.encoders.OrdinalEncoder(features_to_encode=None, categories=None, handle_unknown='error', unknown_value=None, encoded_missing_value=None, random_seed=0, **kwargs)[source]#

一种将顺序特征编码为表示类别相对顺序的顺序整数数组的转换器。

参数
  • features_to_encode (list[str]) – 要编码的列列表。所有其他列将保持不变。如果为 None,将编码所有合适的列。默认为 None。列的顺序无关紧要。

  • categories (dict[str, list[str]]]) – 一个字典,将列名映射到在 fit 和 transform 时传入的数据框中的类别。为列指定的类别顺序无关紧要。数据中存在的任何未在 categories 中找到的类别将作为未知值处理。要避免未知值引发错误,请将 handle_unknown 设置为 “use_encoded_value”。默认为 None。

  • handle_unknown (“error”“use_encoded_value”) – 在 fittransform 期间遇到特征的未知类别时是忽略还是抛出错误。当设置为 “error” 时,发现未知类别将抛出错误。当设置为 “use_encoded_value” 时,未知类别将编码为参数 unknown_value 给定的值。默认为 “error”。

  • unknown_value (intnp.nan) – 在 fit 或 transform 期间遇到的未知类别所使用的值。当参数 handle_unknown 设置为 “use_encoded_value” 时必填。此值必须与 fit 中用于编码任何类别的其他值不同。默认为 None。

  • encoded_missing_value (intnp.nan) – 在 fit 或 transform 期间遇到的缺失值 (null) 所使用的值。默认为 np.nan。

  • random_seed (int) – 随机数生成器的种子。默认为 0。

属性

hyperparameter_ranges

{}

modifies_features

True

modifies_target

False

name

顺序编码器

training_only

False

方法

categories

按顺序返回要为特定特征编码的唯一类别列表。

clone

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

default_parameters

返回此组件的默认参数。

describe

描述一个组件及其参数。

fit

拟合顺序编码器组件。

fit_transform

在 X 上拟合并转换 X。

get_feature_names

拟合后返回顺序特征的特征名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

对输入数据进行顺序编码。

update_parameters

更新组件的参数字典。

categories(self, feature_name)[source]#

按顺序返回要为特定特征编码的唯一类别列表。

参数

feature_name (str) – 在拟合期间提供给顺序编码器的任何特征的名称。

返回

唯一类别,与拟合期间提供时的 dtype 相同。

返回类型

np.ndarray

抛出

ValueError – 如果该特征在训练时未提供给顺序编码器。

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 or dict

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

拟合顺序编码器组件。

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

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

返回

self

抛出
  • ValueError – 如果编码列失败。

  • TypeError – 如果在 features_to_encode 中指定了非顺序列。

fit_transform(self, X, y=None)#

在 X 上拟合并转换 X。

参数
  • X (pd.DataFrame) – 要拟合和转换的数据。

  • y (pd.Series) – 目标数据。

返回

转换后的 X。

返回类型

pd.DataFrame

抛出

MethodPropertyNotFoundError – 如果转换器没有 transform 方法或 component_obj 没有实现 transform 方法。

get_feature_names(self)[source]#

拟合后返回顺序特征的特征名称。

特征名称格式为 {列名}_ordinal_encoding。

返回

编码后的特征名称,按 input_features 的相同顺序提供。

返回类型

np.ndarray

static load(file_path)#

从文件路径加载组件。

参数

file_path (str) – 加载文件的位置。

返回

ComponentBase object

needs_fitting(self)#

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

对于不需要拟合或其 fit 方法不执行任何操作的组件,此值可以被覆盖为 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

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

参数
  • update_dict (dict) – 要更新的参数字典。

  • reset_fit (bool, 可选) – 如果为 True,将设置 _is_fitted 为 False。

class evalml.pipelines.components.transformers.encoders.TargetEncoder(cols=None, smoothing=1, handle_unknown='value', handle_missing='value', random_seed=0, **kwargs)[source]#

一种将分类特征编码为目标编码的转换器。

参数
  • cols (list) – 要编码的列。如果为 None,则编码所有字符串列,否则仅编码提供的列。默认为 None

  • smoothing (float) – 应用的平滑因子。此值越大,期望目标值对结果目标编码的影响越大。必须严格大于 0。默认为 1.0

  • handle_unknown (string) – 确定如何处理遇到的特征的未知类别。选项有 ‘value’、‘error’ 和 ‘return_nan’。默认为 ‘value’,即替换为目标均值

  • handle_missing (string) – 确定如何处理在 fittransform 期间遇到的缺失值。选项有 ‘value’、‘error’ 和 ‘return_nan’。默认为 ‘value’,即替换为目标均值

  • random_seed (int) – 随机数生成器的种子。默认为 0。

属性

hyperparameter_ranges

{}

modifies_features

True

modifies_target

False

name

目标编码器

training_only

False

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述一个组件及其参数。

fit

拟合目标编码器。

fit_transform

使用目标编码器拟合并转换数据。

get_feature_names

拟合后返回输入特征的特征名称。

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, 可选) – 是否打印组件名称

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

返回

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

返回类型

None or dict

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

拟合目标编码器。

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

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

返回

self

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

使用目标编码器拟合并转换数据。

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

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

返回

转换后的数据。

返回类型

pd.DataFrame

get_feature_names(self)[source]#

拟合后返回输入特征的特征名称。

返回

编码后的特征名称。

返回类型

np.array

static load(file_path)#

从文件路径加载组件。

参数

file_path (str) – 加载文件的位置。

返回

ComponentBase object

needs_fitting(self)#

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

对于不需要拟合或其 fit 方法不执行任何操作的组件,此值可以被覆盖为 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) – 输入训练数据,形状为 [n_samples, n_features]。

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

返回

转换后的数据。

返回类型

pd.DataFrame

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

参数
  • update_dict (dict) – 要更新的参数字典。

  • reset_fit (bool, 可选) – 如果为 True,将设置 _is_fitted 为 False。