工具函数#

EvalML 管道的实用方法。

模块内容#

函数#

generate_pipeline_code

创建并返回一个字符串,其中包含运行 EvalML 管道所需的 Python 导入和代码。

generate_pipeline_example

创建并返回一个字符串,其中包含运行 EvalML 管道所需的 Python 导入和代码。

get_actions_from_option_defaults

根据输入 DataCheckActionOption 列表中每个选项的默认参数返回一个操作列表。

make_pipeline

给定输入数据、目标数据、估计器类和问题类型,生成一个管道类,该类包含根据输入推荐的预处理链。该管道将是指定问题类型的适当管道基类的子类。

make_pipeline_from_actions

创建一个组件管道以处理输入的 DataCheckAction 列表。

make_pipeline_from_data_check_output

创建一个组件管道,用于处理运行数据检查时输出的警告和错误。使用所有默认建议。

make_timeseries_baseline_pipeline

为时间序列回归问题创建一个基线管道。

rows_of_interest

获取最接近阈值的数据行索引。仅适用于二元分类问题和管道。

stack_data

将给定的 DataFrame 堆叠回单个 Series,如果 include_series_id 为 True,则堆叠回 DataFrame。

stack_X

将已展开的特征重新堆叠到一个 DataFrame 中。

unstack_multiseries

将具有一个 series_id 列和一个目标列的多序列数据转换为每个系列 ID 一个目标列的数据。

目录#

evalml.pipelines.utils.DECOMPOSER_PERIOD_CAP = 1000#
evalml.pipelines.utils.generate_pipeline_code(element, features_path=None)[source]#

创建并返回一个字符串,其中包含运行 EvalML 管道所需的 Python 导入和代码。

参数
  • element (pipeline instance) – 要生成字符串 Python 代码的管道实例。

  • features_path (str) – 由 featuretools.save_features() 创建的特征 json 路径。默认为 None。

返回值

Python 代码的字符串表示,可以单独运行以重新创建管道实例。不包括自定义组件实现的代码。

返回类型

str

引发异常
  • ValueError – 如果 element 不是管道,或者管道是非线性的。

  • ValueError – 如果 features_path 中的特征与管道上的特征不匹配。

evalml.pipelines.utils.generate_pipeline_example(pipeline, path_to_train, path_to_holdout, target, path_to_features=None, path_to_mapping='', output_file_path=None)[source]#

创建并返回一个字符串,其中包含运行 EvalML 管道所需的 Python 导入和代码。

参数
  • pipeline (pipeline instance) – 要生成字符串 Python 代码的管道实例。

  • path_to_train (str) – 训练数据的路径。

  • path_to_holdout (str) – 留出数据的路径。

  • target (str) – 目标变量。

  • path_to_features (str) – 特征 json 的路径。默认为 None。

  • path_to_mapping (str) – 映射 json 的路径。默认为 None。

  • output_file_path (str) – 输出 python 文件的路径。默认为 None。

返回值

Python 代码的字符串表示,可以单独运行以重新创建管道实例。不包括自定义组件实现的代码。

返回类型

str

evalml.pipelines.utils.get_actions_from_option_defaults(action_options)[source]#

根据输入 DataCheckActionOption 列表中每个选项的默认参数返回一个操作列表。

参数

action_options (list[DataCheckActionOption]) – DataCheckActionOption 对象列表

返回值

基于输入列表中每个选项默认参数的操作列表。

返回类型

list[DataCheckAction]

evalml.pipelines.utils.make_pipeline(X, y, estimator, problem_type, parameters=None, sampler_name=None, extra_components_before=None, extra_components_after=None, use_estimator=True, known_in_advance=None, features=False, exclude_featurizers=None, include_decomposer=True)[source]#

给定输入数据、目标数据、估计器类和问题类型,生成一个管道类,该类包含根据输入推荐的预处理链。该管道将是指定问题类型的适当管道基类的子类。

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

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

  • estimator (Estimator) – 管道的估计器。

  • problem_type (ProblemTypes or str) – 要生成管道的问题类型。

  • parameters (dict) – 字典,以组件名称为键,以该组件参数字典为值。空字典或 None 表示使用组件参数的所有默认值。

  • sampler_name (str) – 要添加到管道的采样器组件的名称。仅用于分类问题。默认为 None

  • extra_components_before (list[ComponentBase]) – 要添加到预处理组件之前的额外组件列表。默认为 None。

  • extra_components_after (list[ComponentBase]) – 要添加到预处理组件之后的额外组件列表。默认为 None。

  • use_estimator (bool) – 是否将提供的估计器添加到管道中。默认为 True。

  • known_in_advance (list[str], None) – 预先已知的特征列表。

  • features (bool) – 是否将 DFSTransformer 组件添加到此管道。

  • exclude_featurizers (list[str]) – 从管道中排除的特征器组件列表。有效选项有“DatetimeFeaturizer”、“EmailFeaturizer”、“URLFeaturizer”、“NaturalLanguageFeaturizer”、“TimeSeriesFeaturizer”

  • include_decomposer (bool) – 对于时间序列回归问题,是否在生成的管道中包含分解器。默认为 True。

返回值

具有动态生成的预处理组件和指定估计器的 PipelineBase 实例。

返回类型

PipelineBase 对象

引发异常

ValueError – 如果估计器对于给定的问题类型无效,或者采样对于给定的问题类型不支持。

evalml.pipelines.utils.make_pipeline_from_actions(problem_type, actions, problem_configuration=None)[source]#

创建一个组件管道以处理输入的 DataCheckAction 列表。

参数
  • problem_type (str or ProblemType) – 管道应处理的问题类型。

  • actions (list[DataCheckAction]) – 用于创建组件列表的 DataCheckAction 对象列表

  • problem_configuration (dict) – 时间序列问题类型必需。应传入 time_index、gap、forecast_horizon 和 max_delay 的值。

返回值

可用于处理数据检查操作的管道。

返回类型

PipelineBase

evalml.pipelines.utils.make_pipeline_from_data_check_output(problem_type, data_check_output, problem_configuration=None)[source]#

创建一个组件管道,用于处理运行数据检查时输出的警告和错误。使用所有默认建议。

参数
  • problem_type (str or ProblemType) – 问题类型。

  • data_check_output (dict) – 调用 DataCheck.validate() 的输出。

  • problem_configuration (dict) – 时间序列问题类型必需。应传入 time_index、gap、forecast_horizon 和 max_delay 的值。

返回值

可用于处理数据检查输出的管道。

返回类型

PipelineBase

引发异常

ValueError – 如果 problem_type 是时间序列类型,但传入了错误的 problem_configuration。

evalml.pipelines.utils.make_timeseries_baseline_pipeline(problem_type, gap, forecast_horizon, time_index, exclude_featurizer=False, series_id=None)[source]#

为时间序列回归问题创建一个基线管道。

参数
  • problem_type – 以下之一:TIME_SERIES_REGRESSION、TIME_SERIES_MULTICLASS、TIME_SERIES_BINARY

  • gap (int) – 非负间隙参数。

  • forecast_horizon (int) – 正的 forecast_horizon 参数。

  • time_index (str) – time_index 参数的列名。

  • exclude_featurizer (bool) – 是否从基线图中排除 TimeSeriesFeaturizer。默认为 False。

  • series_id (str) – series_id 参数的列名。仅用于多序列时间序列。默认为 None。

返回值

TimeSeriesPipelineBase,对应于问题类型的时间序列管道。

evalml.pipelines.utils.MULTISERIES_SEPARATOR_SYMBOL = |#
evalml.pipelines.utils.rows_of_interest(pipeline, X, y=None, threshold=None, epsilon=0.1, sort_values=True, types='all')[source]#

获取最接近阈值的数据行索引。仅适用于二元分类问题和管道。

参数
  • pipeline (PipelineBase) – 已拟合的二元管道。

  • X (ww.DataTable, pd.DataFrame) – 用于预测的输入特征。

  • y (ww.DataColumn, pd.Series, None) – 输入目标数据(如果可用)。默认为 None。

  • threshold (float) – 用于区分正负预测的感兴趣的阈值。如果为 None,则使用已设置的管道阈值,否则使用 0.5。默认为 None。

  • epsilon (epsilon) – 概率与阈值之间的差值,该差值使行对我们感兴趣。例如,epsilon=0.1 且 threshold=0.5 意味着我们认为 [0.4, 0.6] 范围内的所有行都是感兴趣的。默认为 0.1。

  • sort_values (bool) – 是否按与阈值的距离对索引进行排序并返回,使得靠前的数值更接近阈值,靠后的数值更远。默认为 True。

  • types (str) –

    要保留和返回的行类型。可以是 [‘incorrect’(不正确),‘correct’(正确),‘true_positive’(真阳性),‘true_negative’(真阴性),‘all’(所有)] 之一。默认为 ‘all’。

    ‘incorrect’(不正确)- 仅返回预测不正确的行。这意味着,给定阈值和目标 y,仅保留错误标记的行。‘correct’(正确)- 仅返回预测正确的行。这意味着,给定阈值和目标 y,仅保留正确标记的行。‘true_positive’(真阳性)- 仅返回根据目标为阳性的行。‘true_negative’(真阴性)- 仅返回根据目标为阴性的行。‘all’(所有)- 返回所有行。当未提供目标数据时,这是唯一可用的选项。

返回值

对应于感兴趣行的索引。

引发异常
  • ValueError – 如果 pipeline 不是已拟合的二元分类管道。

  • ValueError – 如果 types 无效或当 types 不是 ‘all’ 时未提供 y。

  • ValueError – 如果提供了阈值且不在 [0, 1] 范围内。

evalml.pipelines.utils.stack_data(data, include_series_id=False, series_id_name=None, starting_index=None)[source]#

将给定的 DataFrame 堆叠回单个 Series,如果 include_series_id 为 True,则堆叠回 DataFrame。

仅应用于预期为单个系列的数据。要堆叠多个已展开的列,请使用 stack_X

参数
  • data (pd.DataFrame) – 要堆叠的数据。

  • include_series_id (bool) – 是否提取系列 ID 并将其包含在单独的列中

  • series_id_name (str) – 如果 include_series_id 为 True,则为列设置的 series_id 名称。如果此参数为 None,则列将命名为 ‘series_id’。

  • starting_index (int) – 用于堆叠系列的起始索引。如果为 None 且输入索引为数字,则起始索引将与输入数据相同。如果为 None 且输入索引为 DatetimeIndex,则索引将是输入数据索引在输入数据列数上的重复。

返回值

堆叠系列形式的数据。

返回类型

pd.Series 或 pd.DataFrame

evalml.pipelines.utils.stack_X(X, series_id_name, time_index, starting_index=None, series_id_values=None)[source]#

将已展开的特征重新堆叠到一个 DataFrame 中。

参数
  • X (pd.DataFrame) – 已展开的特征。

  • series_id_name (str) – 系列 ID 列的名称。

  • time_index (str) – 时间索引列的名称。

  • starting_index (int) – 用于堆叠 DataFrame 的起始索引。如果为 None,则起始索引将与输入数据相同。默认为 None。

  • series_id_values (list) – 系列 ID 的唯一值,用于生成索引。如果为 None,则将从 X 列值生成值。如果 X 仅有时间索引值而无外部值,则此参数为必需。默认为 None。

返回值

重新堆叠的特征。

返回类型

pd.DataFrame

evalml.pipelines.utils.unstack_multiseries(X, y, series_id, time_index, target_name)[source]#

将具有一个 series_id 列和一个目标列的多序列数据转换为每个系列 ID 一个目标列的数据。

日期时间信息将仅作为 X 中的一列保留。

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

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

  • series_id (str) – 标识每行所属系列的列。

  • time_index (str) – 指定 X 中提供日期时间对象的列名。

  • target_name (str) – 目标列的名称。

返回值

已展开的 X 和 y 数据。

返回类型

pd.DataFrame, pd.DataFrame