default_algorithm#

一种 AutoML 算法,包含两种模式:快速和长时,其中快速模式是长时模式的子集。

模块内容#

类摘要#

DefaultAlgorithm

一种 AutoML 算法,包含两种模式:快速和长时,其中快速模式是长时模式的子集。

目录#

class evalml.automl.automl_algorithm.default_algorithm.DefaultAlgorithm(X, y, problem_type, sampler_name, allowed_model_families=None, excluded_model_families=None, tuner_class=None, random_seed=0, search_parameters=None, n_jobs=1, text_in_ensembling=False, top_n=3, ensembling=False, num_long_explore_pipelines=50, num_long_pipelines_per_batch=10, allow_long_running_models=False, features=None, run_feature_selection=True, verbose=False, exclude_featurizers=None)[source]#

一种 AutoML 算法,包含两种模式:快速和长时,其中快速模式是长时模式的子集。

  1. 朴素管道
    1. 使用默认预处理管道运行基线模型

    2. 使用默认预处理管道运行朴素线性模型

    3. 使用默认预处理管道运行基本 RF 管道

  2. 带有特征选择的朴素管道
    1. 后续管道将使用带有 SelectedColumns 转换器的选定特征

此时,我们有了一个用于预处理和特征选择的单个管道候选项

  1. 带有预处理组件的管道
    1. 扫描其余的估计器(我们的当前批次 1)。

  2. 首次集成运行

快速模式在此结束。开始长时模式。

  1. 运行前 3 个估计器
    1. 生成 50 组随机参数。在同一批次中运行所有 150 个。

  2. 第二次集成运行

  3. 重复这些过程直到满足停止条件
    1. 对于之前的前 3 个估计器中的每一个,从调优器中采样 10 个参数。在同一批次中运行所有 30 个。

    2. 运行集成

参数
  • X (pd.DataFrame) – 训练数据。

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

  • problem_type (ProblemType) – 与训练数据关联的问题类型。

  • sampler_name (BaseSampler) – 用于预处理的采样器。

  • tuner_class (class) – Tuner 的子类,用于为每个管道寻找参数。默认值 None 表示将使用 SKOptTuner。

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

  • search_parameters (dictNone) – 指定用于迭代管道的管道级别参数和自定义超参数范围。超参数范围必须作为 skopt.space 对象传入。默认为 None。

  • n_jobs (intNone) – 描述管道并行级别的非负整数。默认为 -1。

  • text_in_ensembling (boolean) – 如果为 True 且 ensembling 也为 True,则 n_jobs 将设置为 1,以避免下游 sklearn 堆叠中与 nltk 相关的问题。默认为 False。

  • top_n (int) – 长时模式中使用的前 n 个管道数量。

  • num_long_explore_pipelines (int) – 在长时模式开始时,为每个前 n 个管道探索的管道数量。

  • num_long_pipelines_per_batch (int) – 在整个长时模式中,为每个前 n 个管道每批次运行的管道数量。

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

  • features (list) – 在 AutoML 管道中运行 DFS 的特征列表。默认为 None。仅当输入中存在该特征使用的列且该特征尚未计算时,才会计算特征。

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

  • verbose (boolean) – 是否显示有关管道构建的日志信息。默认为 False。

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

  • allowed_model_families (list(str, ModelFamily)) – 要搜索的模型族。默认值 None 搜索所有模型族。运行 evalml.pipelines.components.utils.allowed_model_families(“binary”) 查看选项。根据问题类型将 binary 更改为 multiclassregression。对于默认算法,这仅适用于非朴素批次中的估计器。

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

方法

add_result

注册评估管道的结果。在批次 2 中,将使用从特征选择器中选定的列名作为列选择器。有关最佳管道的信息也会在此处更新。

batch_number

返回迄今为止已推荐的批次数。

default_max_batches

返回 AutoMLSearch 默认应运行的最大批次数。

next_batch

获取下一批要评估的管道。

num_pipelines_per_batch

返回第 n 个批次中的管道数量。

pipeline_number

返回迄今为止已推荐的管道数量。

add_result(self, score_to_minimize, pipeline, trained_pipeline_results, cached_data=None)[source]#

注册评估管道的结果。在批次 2 中,将使用从特征选择器中选定的列名作为列选择器。有关最佳管道的信息也会在此处更新。

参数
  • score_to_minimize (float) – 该管道在主要目标上获得的分数,已转换以便较低的值表示更好的管道。

  • pipeline (PipelineBase) – 用于计算分数的已训练管道对象。

  • trained_pipeline_results (dict) – 训练管道的结果。

  • cached_data (dict) – 缓存数据的字典,其中键是模型族。预期的格式为 {model_family: {hash1: trained_component_graph, hash2: trained_component_graph…}…}。默认为 None。

property batch_number(self)#

返回迄今为止已推荐的批次数。

property default_max_batches(self)#

返回 AutoMLSearch 默认应运行的最大批次数。

next_batch(self)[source]#

获取下一批要评估的管道。

返回

一个 PipelineBase 子类实例列表,准备好进行训练和评估。

返回类型

list(PipelineBase)

num_pipelines_per_batch(self, batch_number)[source]#

返回第 n 个批次中的管道数量。

参数

batch_number (int) – 要计算管道数量的批次号。

返回

给定批次中的管道数量。

返回类型

int

property pipeline_number(self)#

返回迄今为止已推荐的管道数量。