feature_selection#

选择特征的组件。

包内容#

类摘要#

FeatureSelector

根据重要性权重选择最重要的特征。

RFClassifierRFESelector

使用随机森林分类器通过递归特征消除来选择相关特征。

RFClassifierSelectFromModel

使用随机森林分类器根据重要性权重选择最重要的特征。

RFRegressorRFESelector

使用随机森林回归器通过递归特征消除来选择相关特征。

RFRegressorSelectFromModel

使用随机森林回归器根据重要性权重选择最重要的特征。

内容#

class evalml.pipelines.components.transformers.feature_selection.FeatureSelector(parameters=None, component_obj=None, random_seed=0, **kwargs)[source]#

根据重要性权重选择最重要的特征。

参数
  • parameters (dict) – 组件的参数字典。默认为 None。

  • component_obj (obj) – 组件实现中有用的第三方对象。默认为 None。

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

属性

modifies_features

modifies_target

training_only

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将组件拟合到数据。

fit_transform

使用特征选择器拟合和转换数据。

get_names

获取所选特征的名称。

load

从文件路径加载组件。

name

返回此组件的字符串名称。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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=None)#

将组件拟合到数据。

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

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

返回值

self

引发

MethodPropertyNotFoundError – 如果组件没有 fit 方法或实现 fit 方法的 component_obj。

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

使用特征选择器拟合和转换数据。

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

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

返回值

转换后的数据。

返回值类型

pd.DataFrame

get_names(self)[source]#

获取所选特征的名称。

返回值

所选特征名称的列表。

返回值类型

list[str]

static load(file_path)#

从文件路径加载组件。

参数

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

返回值

ComponentBase 对象

property name(cls)#

返回此组件的字符串名称。

needs_fitting(self)#

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

对于不需要拟合或其拟合方法不做任何事情的组件,可以将其覆盖为 False。

返回值

真。

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]#

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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

  • y (pd.Series, optional) – 目标数据。忽略。

返回值

转换后的 X

返回值类型

pd.DataFrame

引发

MethodPropertyNotFoundError – 如果特征选择器没有 transform 方法或实现 transform 方法的 component_obj

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

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

  • reset_fit (bool, optional) – 如果为 True,则会将 _is_fitted 设置为 False。

class evalml.pipelines.components.transformers.feature_selection.RFClassifierRFESelector(step=0.2, min_features_to_select=1, cv=None, scoring=None, n_jobs=-1, n_estimators=10, max_depth=None, random_seed=0, **kwargs)[source]#

使用随机森林分类器通过递归特征消除来选择相关特征。

参数
  • step (int, float) – 每次迭代要消除的特征数量。如果指定为整数,则表示要消除的特征数量。如果指定为浮点数,则表示每次迭代要消除的特征百分比。最后一次迭代可能会删除少于此数量的特征,以满足 min_features_to_select 约束。默认为 0.2。

  • min_features_to_select (int) – 要返回的最小特征数量。默认为 1。

  • cv (int or None) – 用于交叉验证拆分策略的折叠数。默认为 None,此时将使用 5 折。

  • scoring (str, callable or None) – 用于指定评分方法的字符串或评分可调用对象。

  • n_jobs (int or None) – 并行运行的任务数。-1 表示使用所有进程。默认为 -1。

  • n_estimators (int) – 森林中的树木数量。默认为 10。

  • max_depth (int) – 基础学习器的最大树深度。默认为 None。

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

属性

hyperparameter_ranges

{ “step”: Real(0.05, 0.25)}

modifies_features

modifies_target

name

带有 RF 分类器的 RFE 选择器

training_only

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将组件拟合到数据。

fit_transform

使用特征选择器拟合和转换数据。

get_names

获取所选特征的名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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=None)#

将组件拟合到数据。

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

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

返回值

self

引发

MethodPropertyNotFoundError – 如果组件没有 fit 方法或实现 fit 方法的 component_obj。

fit_transform(self, X, y=None)#

使用特征选择器拟合和转换数据。

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

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

返回值

转换后的数据。

返回值类型

pd.DataFrame

get_names(self)#

获取所选特征的名称。

返回值

所选特征名称的列表。

返回值类型

list[str]

static load(file_path)#

从文件路径加载组件。

参数

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

返回值

ComponentBase 对象

needs_fitting(self)#

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

对于不需要拟合或其拟合方法不做任何事情的组件,可以将其覆盖为 False。

返回值

真。

property parameters(self)#

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

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

将组件保存到文件路径。

参数
  • file_path (str) – 保存文件的位置。

  • pickle_protocol (int) – pickle 数据流格式。

transform(self, X, y=None)#

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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

  • y (pd.Series, optional) – 目标数据。忽略。

返回值

转换后的 X

返回值类型

pd.DataFrame

引发

MethodPropertyNotFoundError – 如果特征选择器没有 transform 方法或实现 transform 方法的 component_obj

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

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

  • reset_fit (bool, optional) – 如果为 True,则会将 _is_fitted 设置为 False。

class evalml.pipelines.components.transformers.feature_selection.RFClassifierSelectFromModel(number_features=None, n_estimators=10, max_depth=None, percent_features=0.5, threshold='median', n_jobs=-1, random_seed=0, **kwargs)[source]#

使用随机森林分类器根据重要性权重选择最重要的特征。

参数
  • number_features (int) – 要选择的最大特征数量。如果同时指定了 percent_features 和 number_features,则取两者中较大的特征数量。默认为 None。

  • n_estimators (int) – 森林中的树木数量。默认为 10。

  • max_depth (int) – 基础学习器的最大树深度。默认为 None。

  • percent_features (float) – 要使用的特征百分比。如果同时指定了 percent_features 和 number_features,则取两者中较大的特征数量。默认为 0.5。

  • threshold (string or float) – 用于特征选择的阈值。重要性大于或等于此阈值的特征被保留,而其他特征则被丢弃。如果为 “median”,则阈值是特征重要性的中位数。也可以使用缩放因子(例如,“1.25*mean”)。默认为 median。

  • n_jobs (int or None) – 并行运行的任务数。-1 表示使用所有进程。默认为 -1。

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

属性

hyperparameter_ranges

{ “percent_features”: Real(0.01, 1), “threshold”: [“mean”, “median”],}

modifies_features

modifies_target

name

基于 RF 分类器的 Select From Model

training_only

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将组件拟合到数据。

fit_transform

使用特征选择器拟合和转换数据。

get_names

获取所选特征的名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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=None)#

将组件拟合到数据。

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

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

返回值

self

引发

MethodPropertyNotFoundError – 如果组件没有 fit 方法或实现 fit 方法的 component_obj。

fit_transform(self, X, y=None)#

使用特征选择器拟合和转换数据。

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

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

返回值

转换后的数据。

返回值类型

pd.DataFrame

get_names(self)#

获取所选特征的名称。

返回值

所选特征名称的列表。

返回值类型

list[str]

static load(file_path)#

从文件路径加载组件。

参数

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

返回值

ComponentBase 对象

needs_fitting(self)#

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

对于不需要拟合或其拟合方法不做任何事情的组件,可以将其覆盖为 False。

返回值

真。

property parameters(self)#

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

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

将组件保存到文件路径。

参数
  • file_path (str) – 保存文件的位置。

  • pickle_protocol (int) – pickle 数据流格式。

transform(self, X, y=None)#

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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

  • y (pd.Series, optional) – 目标数据。忽略。

返回值

转换后的 X

返回值类型

pd.DataFrame

引发

MethodPropertyNotFoundError – 如果特征选择器没有 transform 方法或实现 transform 方法的 component_obj

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

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

  • reset_fit (bool, optional) – 如果为 True,则会将 _is_fitted 设置为 False。

class evalml.pipelines.components.transformers.feature_selection.RFRegressorRFESelector(step=0.2, min_features_to_select=1, cv=None, scoring=None, n_jobs=-1, n_estimators=10, max_depth=None, random_seed=0, **kwargs)[source]#

使用随机森林回归器通过递归特征消除来选择相关特征。

参数
  • step (int, float) – 每次迭代要消除的特征数量。如果指定为整数,则表示要消除的特征数量。如果指定为浮点数,则表示每次迭代要消除的特征百分比。最后一次迭代可能会删除少于此数量的特征,以满足 min_features_to_select 约束。默认为 0.2。

  • min_features_to_select (int) – 要返回的最小特征数量。默认为 1。

  • cv (int or None) – 用于交叉验证拆分策略的折叠数。默认为 None,此时将使用 5 折。

  • scoring (str, callable or None) – 用于指定评分方法的字符串或评分可调用对象。

  • n_jobs (int or None) – 并行运行的任务数。-1 表示使用所有进程。默认为 -1。

  • n_estimators (int) – 森林中的树木数量。默认为 10。

  • max_depth (int) – 基础学习器的最大树深度。默认为 None。

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

属性

hyperparameter_ranges

{ “step”: Real(0.05, 0.25)}

modifies_features

modifies_target

name

带有 RF 回归器的 RFE 选择器

training_only

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将组件拟合到数据。

fit_transform

使用特征选择器拟合和转换数据。

get_names

获取所选特征的名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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=None)#

将组件拟合到数据。

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

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

返回值

self

引发

MethodPropertyNotFoundError – 如果组件没有 fit 方法或实现 fit 方法的 component_obj。

fit_transform(self, X, y=None)#

使用特征选择器拟合和转换数据。

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

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

返回值

转换后的数据。

返回值类型

pd.DataFrame

get_names(self)#

获取所选特征的名称。

返回值

所选特征名称的列表。

返回值类型

list[str]

static load(file_path)#

从文件路径加载组件。

参数

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

返回值

ComponentBase 对象

needs_fitting(self)#

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

对于不需要拟合或其拟合方法不做任何事情的组件,可以将其覆盖为 False。

返回值

真。

property parameters(self)#

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

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

将组件保存到文件路径。

参数
  • file_path (str) – 保存文件的位置。

  • pickle_protocol (int) – pickle 数据流格式。

transform(self, X, y=None)#

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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

  • y (pd.Series, optional) – 目标数据。忽略。

返回值

转换后的 X

返回值类型

pd.DataFrame

引发

MethodPropertyNotFoundError – 如果特征选择器没有 transform 方法或实现 transform 方法的 component_obj

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

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

  • reset_fit (bool, optional) – 如果为 True,则会将 _is_fitted 设置为 False。

class evalml.pipelines.components.transformers.feature_selection.RFRegressorSelectFromModel(number_features=None, n_estimators=10, max_depth=None, percent_features=0.5, threshold='median', n_jobs=-1, random_seed=0, **kwargs)[source]#

使用随机森林回归器根据重要性权重选择最重要的特征。

参数
  • number_features (int) – 要选择的最大特征数量。如果同时指定了 percent_features 和 number_features,则取两者中较大的特征数量。默认为 0.5。

  • n_estimators (int) – 森林中的树木数量。默认为 10。

  • max_depth (int) – 基础学习器的最大树深度。默认为 None。

  • percent_features (float) – 要使用的特征百分比。如果同时指定了 percent_features 和 number_features,则取两者中较大的特征数量。默认为 0.5。

  • threshold (string or float) – 用于特征选择的阈值。重要性大于或等于此阈值的特征被保留,而其他特征则被丢弃。如果为 “median”,则阈值是特征重要性的中位数。也可以使用缩放因子(例如,“1.25*mean”)。默认为 median。

  • n_jobs (int or None) – 并行运行的任务数。-1 表示使用所有进程。默认为 -1。

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

属性

hyperparameter_ranges

{ “percent_features”: Real(0.01, 1), “threshold”: [“mean”, “median”],}

modifies_features

modifies_target

name

基于 RF 回归器的 Select From Model

training_only

方法

clone

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

default_parameters

返回此组件的默认参数。

describe

描述组件及其参数。

fit

将组件拟合到数据。

fit_transform

使用特征选择器拟合和转换数据。

get_names

获取所选特征的名称。

load

从文件路径加载组件。

needs_fitting

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

parameters

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

save

将组件保存到文件路径。

transform

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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=None)#

将组件拟合到数据。

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

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

返回值

self

引发

MethodPropertyNotFoundError – 如果组件没有 fit 方法或实现 fit 方法的 component_obj。

fit_transform(self, X, y=None)#

使用特征选择器拟合和转换数据。

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

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

返回值

转换后的数据。

返回值类型

pd.DataFrame

get_names(self)#

获取所选特征的名称。

返回值

所选特征名称的列表。

返回值类型

list[str]

static load(file_path)#

从文件路径加载组件。

参数

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

返回值

ComponentBase 对象

needs_fitting(self)#

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

对于不需要拟合或其拟合方法不做任何事情的组件,可以将其覆盖为 False。

返回值

真。

property parameters(self)#

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

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

将组件保存到文件路径。

参数
  • file_path (str) – 保存文件的位置。

  • pickle_protocol (int) – pickle 数据流格式。

transform(self, X, y=None)#

通过选择特征转换输入数据。如果 component_obj 没有 transform 方法,将引发 MethodPropertyNotFoundError 异常。

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

  • y (pd.Series, optional) – 目标数据。忽略。

返回值

转换后的 X

返回值类型

pd.DataFrame

引发

MethodPropertyNotFoundError – 如果特征选择器没有 transform 方法或实现 transform 方法的 component_obj

update_parameters(self, update_dict, reset_fit=True)#

更新组件的参数字典。

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

  • reset_fit (bool, optional) – 如果为 True,则会将 _is_fitted 设置为 False。