自动机器学习#

AutoMLSearch 及相关模块。

包内容#

类摘要#

AutoMLSearch

自动化管道搜索。

EngineBase

EvalML 引擎的基类。

Progress

Progress 对象,包含停止标准和进度信息。

SequentialEngine

Automl 搜索的默认引擎。

函数#

get_default_primary_search_objective

获取问题类型的默认主要搜索目标。

get_threshold_tuning_info

确定给定 automl 配置和管道的阈值调优目标以及是否应进一步分割训练数据以实现适当的阈值调优。

make_data_splitter

给定训练数据和机器学习问题参数,计算在 AutoML 搜索期间使用的数据分割方法。

resplit_training_data

进一步分割给定管道的训练数据。对于二元管道,需要这样做以便正确调整阈值。

search

给定数据和配置,运行 automl 搜索。

search_iterative

给定数据和配置,运行 automl 搜索。

tune_binary_threshold

将二元管道的阈值调优到 X 和 y 阈值数据。

目录#

class evalml.automl.AutoMLSearch(X_train=None, y_train=None, X_holdout=None, y_holdout=None, problem_type=None, objective='auto', max_iterations=None, max_time=None, patience=None, tolerance=None, data_splitter=None, allowed_component_graphs=None, allowed_model_families=None, excluded_model_families=None, features=None, run_feature_selection=True, start_iteration_callback=None, add_result_callback=None, error_callback=None, additional_objectives=None, alternate_thresholding_objective='F1', random_seed=0, n_jobs=-1, tuner_class=None, optimize_thresholds=True, ensembling=False, max_batches=None, problem_configuration=None, train_best_pipeline=True, search_parameters=None, sampler_method='auto', sampler_balanced_ratio=0.25, allow_long_running_models=False, _pipelines_per_batch=5, automl_algorithm='default', engine='sequential', verbose=False, timing=False, exclude_featurizers=None, holdout_set_size=0, use_recommendation=False, include_recommendation=None, exclude_recommendation=None)[source]#

自动化管道搜索。

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

  • y_train (pd.Series) – 目标训练数据,长度为 [n_samples]。监督学习任务必填。

  • X_holdout (pd.DataFrame) – 输入留出数据,形状为 [n_samples, n_features]。

  • y_holdout (pd.Series) – 目标留出数据,长度为 [n_samples]。

  • problem_type (str or ProblemTypes) – 监督学习问题的类型。完整列表请参阅 evalml.problem_types.ProblemType.all_problem_types。

  • objective (str, ObjectiveBase) – 要优化的目标。用于提出和排名管道,但不在拟合时优化每个管道。设置为 'auto' 时,选择: - LogLossBinary 用于二元分类问题, - LogLossMulticlass 用于多类别分类问题,以及 - R2 用于回归问题。

  • max_iterations (int) – 最大搜索迭代次数。如果未设置 max_iterations 和 max_time,则 max_iterations 将默认为 5 次迭代。

  • max_time (int, str) – 搜索管道的最长时间。超过此持续时间后将不会开始新的管道搜索。如果为整数,则时间单位为秒。对于字符串,时间可以指定为秒、分钟或小时。

  • patience (int) – 在没有改进的情况下停止搜索的迭代次数。必须为正数。如果为 None,则禁用早期停止。默认为 None。

  • tolerance (float) – 符合早期停止评分改进的最小百分比差异。仅在 patience 非 None 时适用。默认为 None。

  • allowed_component_graphs (dict) –

    一个字典,包含列表中允许在搜索中使用的组件图或 ComponentGraph。格式应遵循 { “Name_0”: [组件列表], “Name_1”: ComponentGraph(…) }

    默认为 None,表示允许此问题类型的所有管道组件图。设置此字段将导致 allowed_model_families 被忽略。

    例如 allowed_component_graphs = { “My_Graph”: [“Imputer”, “One Hot Encoder”, “Random Forest Classifier”] }

  • allowed_model_families (list(str, ModelFamily)) – 要搜索的模型族。默认为 None,表示搜索所有模型族。运行 evalml.pipelines.components.utils.allowed_model_families(“binary”) 查看选项。根据问题类型将 binary 更改为 multiclassregression。请注意,如果提供了 allowed_pipelines,此参数将被忽略。对于默认算法,这仅适用于非朴素批次中的估计器。

  • features (list) – 要在 AutoML 管道上运行 DFS 的特征列表。默认为 None。只有当特征使用的列存在于搜索输入中且特征本身不在搜索输入中时,才会计算特征。如果 features 是空列表,DFS Transformer 将不会包含在管道中。

  • run_feature_selection (bool) – 如果为 True,将运行单独的特征选择管道,并在后续批次中仅使用选定的特征。如果为 False,将为每个管道使用所有特征。仅用于默认算法,对于迭代算法此设置无效。

  • data_splitter (sklearn.model_selection.BaseCrossValidator) – 要使用的数据分割方法。默认为 StratifiedKFold。

  • tuner_class – 要使用的调优器类。默认为 SKOptTuner。

  • optimize_thresholds (bool) – 是否优化二元管道阈值。默认为 True。

  • start_iteration_callback (callable) – 在每次管道训练迭代之前调用的函数。回调函数接受三个位置参数:管道实例和 AutoMLSearch 对象。

  • add_result_callback (callable) – 在每次管道训练迭代之后调用的函数。回调函数接受三个位置参数:包含新管道训练结果的字典、包含训练期间使用的参数的 untrained_pipeline 以及 AutoMLSearch 对象。

  • error_callback (callable) – 当 search() 出错并引发异常时调用的函数。回调函数接受三个位置参数:引发的异常、堆栈跟踪和 AutoMLSearch 对象。还必须接受 kwargs,以便 AutoMLSearch 默认能够传递其他适当的参数。默认为 None,此时将调用 log_error_callback

  • additional_objectives (list) – 用于评分的自定义目标集。如果不为空,将覆盖问题类型的默认目标。

  • alternate_thresholding_objective (str) – 如果提供的主要目标不可调优,则用于二元分类管道阈值设定的目标。默认为 F1。

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

  • n_jobs (int or None) – 描述管道并行级别的非负整数。None 和 1 等效。如果设置为 -1,则使用所有 CPU。对于小于 -1 的 n_jobs,使用 (n_cpus + 1 + n_jobs) 个 CPU。

  • ensembling (boolean) – 如果为 True,则在迭代完每个允许的管道类后,在一个单独的批次中运行集成。如果每个批次要搜索的独特管道数量为一个,则不会运行集成。默认为 False。

  • max_batches (int) – 要搜索的最大管道批次数。参数 max_time 和 max_iterations 优先于停止搜索。

  • problem_configuration (dict, None) – 配置搜索所需的附加参数。例如,在时间序列问题中,应为 time_index、gap、forecast_horizon 和 max_delay 变量传递值。对于多系列时间序列问题,传递的值还应包含 series_id 列的名称。

  • train_best_pipeline (boolean) – 返回最佳管道之前是否对其进行训练。默认为 True。

  • search_parameters (dict) –

    一个字典,包含搜索期间用于迭代的超参数范围或管道参数。键应为组件名称,值应指定管道参数的单个值/列表,或超参数范围的 skopt.Space。在下面的示例中,Imputer 参数将传递给超参数范围,而 Label Encoder 参数将用作组件参数。

    例如 search_parameters = { ‘Imputer’{ ‘numeric_impute_strategy’: Categorical([‘most_frequent’, ‘median’]) },

    ’Label Encoder’: {‘positive_label’: True} }

  • sampler_method (str) – 如果问题类型是分类且目标平衡小于 sampler_balanced_ratio,则在管道中使用的采样组件。可以是 'auto'(将使用我们首选的数据采样器)、'Undersampler'、'Oversampler' 或 None。默认为 'auto'。

  • sampler_balanced_ratio (float) – 我们认为平衡的少数类:多数类比例,例如 1:4 的比例等于 0.25。如果类别平衡大于此提供的值,则我们将不添加采样器,因为数据此时被认为是平衡的。覆盖采样器的 sampler_ratio。默认为 0.25。

  • allow_long_running_models (bool) – 是否允许在大型多类别问题中使用运行时间较长的模型。如果为 False 且未提供管道、组件图或模型族,当多类别目标超过 75 个时,AutoMLSearch 将不使用 Elastic Net 或 XGBoost;当多类别目标超过 150 个时,将不使用 CatBoost。默认为 False。

  • _ensembling_split_size (float) – 我们将预留用于训练集成元学习器的训练数据量。仅当 ensembling 为 True 时使用。必须在 0 到 1 之间,不包含边界。默认为 0.2。

  • _pipelines_per_batch (int) – 第一个批次后每个批次要训练的管道数量。第一个批次将训练一个基准管道 + 搜索中允许的每个管道族中的一个管道。

  • automl_algorithm (str) – 要使用的 automl 算法。目前有两种选择:'iterative' 和 'default'。默认为 default

  • engine (EngineBase or str) – 用于评估管道的引擎实例。也可以通过提供列表 [“sequential”, “cf_threaded”, “cf_process”, “dask_threaded”, “dask_process”] 中的字符串来选择 Dask 或 concurrent.futures 引擎。如果以这种方式选择了并行引擎,将使用由引擎确定的最大并行度。默认为“sequential”。

  • verbose (boolean) – 搜索运行时是否向 stdout 显示半实时更新。默认为 False。

  • timing (boolean) – 是否将管道搜索时间写入日志。默认为 False。

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

  • excluded_model_families (list(str, ModelFamily)) – 构建管道时要从使用的估计器中排除的模型族列表。对于默认算法,这仅排除非朴素批次中的估计器。

  • holdout_set_size (float) – 对于大于 500 行的数据集,AutoML 搜索将使用的留出集大小。如果设置为 0,无论行数多少都不会取留出集。必须在 0 到 1 之间,不包含边界。默认为 0.1。

  • use_recommendation (bool) – 是否使用推荐评分来排名管道,而不是优化目标。默认为 False。

  • include_recommendation (list[str]) – 在推荐评分中要包含在默认目标之外的目标列表。默认为 None。

  • exclude_recommendation (list[str]) – 在推荐评分中要从默认目标中排除的目标列表。默认为 None。

方法

add_to_rankings

拟合并评估给定管道,然后将结果添加到 automl 排名中,前提是 automl 搜索已运行。

best_pipeline

返回 automl 搜索期间找到的最佳管道及其参数的已训练实例。如果将 train_best_pipeline 设置为 False,则返回未训练的管道实例。

close_engine

显式关闭引擎、客户端、并行资源的函数。

describe_pipeline

描述管道。

full_rankings

返回一个 pandas.DataFrame,其中包含所有搜索到的管道的评分结果。

get_ensembler_input_pipelines

给定集成器管道 ID,返回输入管道 ID 列表。

get_pipeline

给定管道训练结果的 ID,返回指定管道的未训练实例,并使用在 automl 搜索期间训练该管道所用的参数进行初始化。

get_recommendation_score_breakdown

报告给定管道的推荐评分计算中使用的目标的评分。

get_recommendation_scores

计算搜索结果中所有管道的推荐评分。

load

从文件路径加载 AutoML 对象。

plot

返回包含最新评分的图表实例。

rankings

返回一个 pandas.DataFrame,其中包含每个管道使用最高评分参数集的评分结果。

results

允许访问 automl_search 结果副本的类。

save

将 AutoML 对象保存到文件路径。

score_pipelines

在给定的留出数据上对管道列表进行评分。

search

为数据集找到最佳管道。

train_pipelines

在训练数据上训练管道列表。

add_to_rankings(self, pipeline)[source]#

拟合并评估给定管道,然后将结果添加到 automl 排名中,前提是 automl 搜索已运行。

参数

pipeline (PipelineBase) – 要训练和评估的管道。

property best_pipeline(self)#

返回 automl 搜索期间找到的最佳管道及其参数的已训练实例。如果将 train_best_pipeline 设置为 False,则返回未训练的管道实例。

返回

返回 automl 搜索期间找到的最佳管道及其参数的已训练实例。如果将 train_best_pipeline 设置为 False,则返回未训练的管道实例。

返回类型

PipelineBase

引发

PipelineNotFoundError – 如果在调用 .search() 之前调用此方法。

close_engine(self)[source]#

显式关闭引擎、客户端、并行资源的函数。

describe_pipeline(self, pipeline_id, return_dict=False)[source]#

描述管道。

参数
  • pipeline_id (int) – 要描述的管道 ID

  • return_dict (bool) – 如果为 True,则返回关于管道信息的字典。默认为 False。

返回

指定管道的描述。包括管道组件类型、问题、训练时间、交叉验证等信息。

引发

PipelineNotFoundError – 如果 pipeline_id 不是有效的 ID。

property full_rankings(self)#

返回一个 pandas.DataFrame,其中包含所有搜索到的管道的评分结果。

get_ensembler_input_pipelines(self, ensemble_pipeline_id)[source]#

给定集成器管道 ID,返回输入管道 ID 列表。

参数

ensemble_pipeline_id (id) – 要获取输入管道 ID 的集成管道 ID。

返回

集成输入管道 ID 列表。

返回类型

list[int]

引发

ValueError – 如果 ensemble_pipeline_id 不对应于有效的集成管道 ID。

get_pipeline(self, pipeline_id)[source]#

给定管道训练结果的 ID,返回指定管道的未训练实例,并使用在 automl 搜索期间训练该管道所用的参数进行初始化。

参数

pipeline_id (int) – 要检索的管道 ID。

返回

与提供的 ID 相关联的未训练管道实例。

返回类型

PipelineBase

引发

PipelineNotFoundError – 如果 pipeline_id 不是有效的 ID。

get_recommendation_score_breakdown(self, pipeline_id)[source]#

报告给定管道的推荐评分计算中使用的目标的评分。

请注意,这些评分以原始形式报告,未缩放到 0 到 1 之间。

参数

pipeline_id (int) – 要获取推荐评分细分的管道 ID。

返回

用于推荐评分计算的每个目标的评分字典。

返回类型

dict

get_recommendation_scores(self, priority=None, custom_weights=None, use_pipeline_names=False)[source]#

计算搜索结果中所有管道的推荐评分。

参数
  • priority (str) – 可选的优先级目标名称,与其他对评分有贡献的目标相比,应赋予其更高的权重(0.5)。默认为 None,此时所有目标权重相等。

  • custom_weights (dict[str,float]) – 将目标名称映射到 0 到 1 之间相应权重的字典。不应与 prioritized_objective 同时使用。默认为 None。

  • use_pipeline_names (bool) – 是否返回管道名称而不是 ID 作为推荐评分字典的键。默认为 False。

返回

将管道 ID 映射到推荐评分的字典

static load(file_path, pickle_type='cloudpickle')[source]#

从文件路径加载 AutoML 对象。

参数
  • file_path (str) – 要加载文件的位置

  • pickle_type ({"pickle", "cloudpickle"}) – 要使用的 pickling 库。目前未使用,因为标准 pickle 库可以处理 cloudpickles。

返回

AutoSearchBase 对象

property plot(self)#

返回包含最新评分的图表实例。

property rankings(self)#

返回一个 pandas.DataFrame,其中包含每个管道使用最高评分参数集的评分结果。

property results(self)#

允许访问 automl_search 结果副本的类。

返回

包含 pipeline_results 的字典,这是一个包含每个管道结果的 dict,

以及 search_order,一个描述管道搜索顺序的列表。

返回类型

dict

save(self, file_path, pickle_type='cloudpickle', pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)[source]#

将 AutoML 对象保存到文件路径。

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

  • pickle_type ({"pickle", "cloudpickle"}) – 要使用的 pickling 库。

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

引发

ValueError – 如果 pickle_type 不是 “pickle” 或 “cloudpickle”。

score_pipelines(self, pipelines, X_holdout, y_holdout, objectives)[source]#

在给定的留出数据上对管道列表进行评分。

参数
  • pipelines (list[PipelineBase]) – 要训练的管道列表。

  • X_holdout (pd.DataFrame) – 留出特征。

  • y_holdout (pd.Series) – 用于评分的留出目标。

  • objectives (list[str], list[ObjectiveBase]) – 用于评分的目标。

返回

以管道名称为键的字典,映射到评分字典。请注意,任何在评分过程中出错的管道将不会包含在字典中,但异常和堆栈跟踪将显示在日志中。

返回类型

dict[str, Dict[str, float]]

search(self, interactive_plot=True)[source]#

为数据集找到最佳管道。

参数

interactive_plot (boolean, True) – 在 Jupyter notebook 中显示迭代 vs. 评分图表。在非 Jupyter 环境中默认禁用。

引发

AutoMLSearchException – 如果当前 AutoML 批次中的所有管道在主要目标上都产生了 np.nan 的评分。

返回

以批次编号为键的字典,映射到在该批次中运行的管道的计时以及每个批次的总时间。批次内的管道按管道名称标记。

返回类型

Dict[int, Dict[str, Timestamp]]

train_pipelines(self, pipelines)[source]#

在训练数据上训练管道列表。

这对于在搜索完成后训练管道很有帮助。

参数

pipelines (list[PipelineBase]) – 要训练的管道列表。

返回

以管道名称为键的字典,映射到已拟合的管道。请注意,任何在训练过程中出错的管道将不会包含在字典中,但异常和堆栈跟踪将显示在日志中。

返回类型

Dict[str, PipelineBase]

class evalml.automl.EngineBase[source]#

EvalML 引擎的基类。

方法

setup_job_log

为任务设置日志器。

submit_evaluation_job

在 AutoMLSearch 期间提交管道评估任务。

submit_scoring_job

提交管道评分任务。

submit_training_job

提交管道训练任务。

static setup_job_log()[source]#

为任务设置日志器。

abstract submit_evaluation_job(self, automl_config, pipeline, X, y, X_holdout=None, y_holdout=None)[source]#

在 AutoMLSearch 期间提交管道评估任务。

abstract submit_scoring_job(self, automl_config, pipeline, X, y, objectives, X_train=None, y_train=None)[source]#

提交管道评分任务。

abstract submit_training_job(self, automl_config, pipeline, X, y)[source]#

提交管道训练任务。

evalml.automl.get_default_primary_search_objective(problem_type)[source]#

获取问题类型的默认主要搜索目标。

参数

problem_type (str or ProblemType) – 相关的问题类型。

返回

问题类型的主要目标实例。

返回类型

ObjectiveBase

evalml.automl.get_threshold_tuning_info(automl_config, pipeline)[source]#

确定给定 automl 配置和管道的阈值调优目标以及是否应进一步分割训练数据以实现适当的阈值调优。

也可在执行 automl 搜索后使用,以确定是否使用了完整的训练数据来训练管道。

参数
  • automl_config (AutoMLConfig) – AutoMLSearch 的配置对象。用于确定阈值调优目标以及数据是否需要重新分割。

  • pipeline (Pipeline) – 要进行阈值设置的管道实例。

返回

threshold_tuning_objective, data_needs_resplitting (str, bool)

evalml.automl.make_data_splitter(X, y, problem_type, problem_configuration=None, n_splits=3, shuffle=True, random_seed=0)[source]#

给定训练数据和机器学习问题参数,计算在 AutoML 搜索期间使用的数据分割方法。

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

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

  • problem_type (ProblemType) – 机器学习问题的类型。

  • problem_configuration (dict, None) – 配置搜索所需的附加参数。例如,在时间序列问题中,应为 time_index、gap 和 max_delay 变量传递值。默认为 None。

  • n_splits (int, None) – 如果适用,CV 分割的数量。默认为 3。

  • shuffle (bool) – 如果适用,是否在分割前打乱数据。默认为 True。

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

返回

数据分割方法。

返回类型

sklearn.model_selection.BaseCrossValidator

引发

ValueError – 如果未为时间序列问题提供 problem_configuration。

class evalml.automl.Progress(max_time=None, max_batches=None, max_iterations=None, patience=None, tolerance=None, automl_algorithm=None, objective=None, verbose=False)[source]#

Progress 对象,包含停止标准和进度信息。

参数
  • max_time (int) – 搜索管道的最长时间。

  • max_iterations (int) – 最大搜索迭代次数。

  • max_batches (int) – 要搜索的最大管道批次数。参数 max_time 和 max_iterations 优先于停止搜索。

  • patience (int) – 在没有改进的情况下停止搜索的迭代次数。

  • tolerance (float) – 符合早期停止评分改进的最小百分比差异。

  • automl_algorithm (str) – 要使用的 automl 算法。如果选择 max_batches 作为停止标准,则用于计算迭代次数。

  • objective (str, ObjectiveBase) – 搜索中使用的目标。

  • verbose (boolean) – 是否记录停止信息。

方法

elapsed

使用开始时间和当前时间计算已用时间。

return_progress

按优先级顺序返回每个停止标准的当前状态和结束状态信息。

should_continue

给定 AutoML 结果,返回搜索是否应继续。

start_timing

将开始时间设置为当前时间。

elapsed(self)[source]#

使用开始时间和当前时间计算已用时间。

return_progress(self)[source]#

按优先级顺序返回每个停止标准的当前状态和结束状态信息。

返回

包含每个停止标准信息的字典列表。

返回类型

List[Dict[str, unit]]

should_continue(self, results, interrupted=False, mid_batch=False)[source]#

给定 AutoML 结果,返回搜索是否应继续。

参数
  • results (dict) – AutoMLSearch 结果。

  • interrupted (bool) – AutoMLSearch 是否收到了键盘中断。默认为 False。

  • mid_batch (bool) – 此方法是否在批处理中间被调用。默认为 False。

返回

如果搜索应该继续,则为 True;否则为 False。

返回类型

bool

start_timing(self)[source]#

将开始时间设置为当前时间。

evalml.automl.resplit_training_data(pipeline, X_train, y_train)[source]#

进一步分割给定管道的训练数据。对于二元管道,需要这样做以便正确调整阈值。

可在执行 automl 搜索后使用,以重新创建用于训练管道的数据。

参数
  • pipeline (PipelineBase) – 我们正在分割其训练数据的管道。

  • X_train (pd.DataFrame or np.ndarray) – 训练数据,形状为 [n_samples, n_features]

  • y_train (pd.Series, or np.ndarray) – 训练目标数据,长度为 [n_samples]

返回

特征和目标数据分别分割成训练集和阈值调优集。

返回类型

pd.DataFrame, pd.DataFrame, pd.Series, pd.Series

evalml.automl.search(X_train=None, y_train=None, problem_type=None, objective='auto', mode='fast', max_time=None, patience=None, tolerance=None, problem_configuration=None, n_splits=3, verbose=False, timing=False)[source]#

给定数据和配置,运行 automl 搜索。

此方法将运行 EvalML 的默认数据检查套件。如果数据检查产生错误,将在运行 automl 搜索之前返回数据检查结果。在这种情况下,建议您修改数据以解决这些错误并重试。提供此方法是为了方便。如果您想更精细地控制每个步骤的运行时间,可以考虑直接调用数据检查和 AutoMLSearch 等不同部分,而不是使用此方法。

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

  • y_train (pd.Series) – 目标训练数据,长度为 [n_samples]。监督学习任务必填。

  • problem_type (str or ProblemTypes) – 监督学习问题的类型。完整列表请参阅 evalml.problem_types.ProblemType.all_problem_types。

  • objective (str, ObjectiveBase) – 要优化的目标。用于提出和排名管道,但不在拟合时优化每个管道。设置为 'auto' 时,选择: - LogLossBinary 用于二元分类问题, - LogLossMulticlass 用于多类别分类问题,以及 - R2 用于回归问题。

  • mode (str) – DefaultAlgorithm 的模式。有两种模式:fast 和 long,其中 fast 是 long 的子集。请查看 DefaultAlgorithm 了解更多详情。

  • max_time (int, str) – 搜索管道的最长时间。超过此持续时间后将不会开始新的管道搜索。如果为整数,则时间单位为秒。对于字符串,时间可以指定为秒、分钟或小时。

  • patience (int) – 在没有改进的情况下停止搜索的迭代次数。必须为正数。如果为 None,则禁用早期停止。默认为 None。

  • tolerance (float) – 符合早期停止评分改进的最小百分比差异。仅在 patience 非 None 时适用。默认为 None。

  • problem_configuration (dict) – 配置搜索所需的附加参数。例如,在时间序列问题中,应为 time_index、gap、forecast_horizon 和 max_delay 变量传递值。

  • n_splits (int) – 与默认数据分割器一起使用的分割数量。

  • verbose (boolean) – 搜索运行时是否向 stdout 显示半实时更新。默认为 False。

  • timing (boolean) – 是否将管道搜索时间写入日志。默认为 False。

返回

包含管道和排名的 automl 搜索对象,以及运行数据检查的结果。如果数据检查结果包含错误,将不会运行 automl 搜索,也不会返回 automl 搜索对象。

返回类型

(AutoMLSearch, dict)

引发

ValueError – 如果搜索配置无效。

evalml.automl.search_iterative(X_train=None, y_train=None, problem_type=None, objective='auto', problem_configuration=None, n_splits=3, timing=False, **kwargs)[source]#

给定数据和配置,运行 automl 搜索。

此方法将运行 EvalML 的默认数据检查套件。如果数据检查产生错误,将在运行 automl 搜索之前返回数据检查结果。在这种情况下,建议您修改数据以解决这些错误并重试。提供此方法是为了方便。如果您想更精细地控制每个步骤的运行时间,可以考虑直接调用数据检查和 AutoMLSearch 等不同部分,而不是使用此方法。

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

  • y_train (pd.Series) – 目标训练数据,长度为 [n_samples]。监督学习任务必填。

  • problem_type (str or ProblemTypes) – 监督学习问题的类型。完整列表请参阅 evalml.problem_types.ProblemType.all_problem_types。

  • objective (str, ObjectiveBase) – 要优化的目标。用于提出和排名管道,但不在拟合时优化每个管道。设置为 'auto' 时,选择: - LogLossBinary 用于二元分类问题, - LogLossMulticlass 用于多类别分类问题,以及 - R2 用于回归问题。

  • problem_configuration (dict) – 配置搜索所需的附加参数。例如,在时间序列问题中,应为 time_index、gap、forecast_horizon 和 max_delay 变量传递值。

  • n_splits (int) – 与默认数据分割器一起使用的分割数量。

  • timing (boolean) – 是否将管道搜索时间写入日志。默认为 False。

  • **kwargs – 提供的其他关键字参数将传递给 AutoMLSearch。

返回

包含管道和排名的 automl 搜索对象,以及运行数据检查的结果。如果数据检查结果包含错误,将不会运行 automl 搜索,也不会返回 automl 搜索对象。

返回类型

(AutoMLSearch, dict)

引发

ValueError – 如果搜索配置无效。

class evalml.automl.SequentialEngine[source]#

Automl 搜索的默认引擎。

在本地按顺序训练和评分管道。

方法

close

无操作。

setup_job_log

为任务设置日志器。

submit_evaluation_job

提交管道评估任务。

submit_scoring_job

提交管道评分任务。

submit_training_job

提交管道训练任务。

close(self)[source]#

无操作。

static setup_job_log()#

为任务设置日志器。

submit_evaluation_job(self, automl_config, pipeline, X, y, X_holdout=None, y_holdout=None)[source]#

提交管道评估任务。

参数
  • automl_config – 包含从 AutoMLSearch 实例传递的数据的结构。

  • pipeline (pipeline.PipelineBase) – 要评估的管道。

  • X (pd.DataFrame) – 用于建模的输入数据。

  • y (pd.Series) – 用于建模的目标数据。

  • X_holdout (pd.Series) – 用于留出评分的留出输入数据。

  • y_holdout (pd.Series) – 用于留出评分的留出目标数据。

返回

计算结果。

返回类型

SequentialComputation

submit_scoring_job(self, automl_config, pipeline, X, y, objectives, X_train=None, y_train=None)[source]#

提交管道评分任务。

参数
  • automl_config – 包含从 AutoMLSearch 实例传递的数据的结构。

  • pipeline (pipeline.PipelineBase) – 要训练的管道。

  • X (pd.DataFrame) – 用于建模的输入数据。

  • y (pd.Series) – 用于建模的目标数据。

  • X_train (pd.DataFrame) – 训练特征。用于时间序列的特征工程。

  • y_train (pd.Series) – 训练目标。用于时间序列的特征工程。

  • objectives (list[ObjectiveBase]) – 要评分的目标列表。

返回

计算结果。

返回类型

SequentialComputation

submit_training_job(self, automl_config, pipeline, X, y)[source]#

提交管道训练任务。

参数
  • automl_config – 包含从 AutoMLSearch 实例传递的数据的结构。

  • pipeline (pipeline.PipelineBase) – 要评估的管道。

  • X (pd.DataFrame) – 用于建模的输入数据。

  • y (pd.Series) – 用于建模的目标数据。

返回

计算结果。

返回类型

SequentialComputation

evalml.automl.tune_binary_threshold(pipeline, objective, problem_type, X_threshold_tuning, y_threshold_tuning, X=None, y=None)[source]#

将二元管道的阈值调优到 X 和 y 阈值数据。

参数
  • pipeline (Pipeline) – 要进行阈值调整的管道实例。

  • objective (ObjectiveBase) – 用于调整的目标。如果目标不可调整且 best_pipeline 为 True,则将使用 F1。

  • problem_type (ProblemType) – 管道的问题类型。

  • X_threshold_tuning (pd.DataFrame) – 用于调整管道的特征。

  • y_threshold_tuning (pd.Series) – 用于调整管道的目标数据。

  • X (pd.DataFrame) – 用于训练管道的特征(用于时间序列二分类)。默认为 None。

  • y (pd.Series) – 用于训练管道的目标(用于时间序列二分类)。默认为 None。