default_algorithm#
一种 AutoML 算法,包含两种模式:快速和长时,其中快速模式是长时模式的子集。
模块内容#
类摘要#
一种 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 算法,包含两种模式:快速和长时,其中快速模式是长时模式的子集。
- 朴素管道
使用默认预处理管道运行基线模型
使用默认预处理管道运行朴素线性模型
使用默认预处理管道运行基本 RF 管道
- 带有特征选择的朴素管道
后续管道将使用带有 SelectedColumns 转换器的选定特征
此时,我们有了一个用于预处理和特征选择的单个管道候选项
- 带有预处理组件的管道
扫描其余的估计器(我们的当前批次 1)。
首次集成运行
快速模式在此结束。开始长时模式。
- 运行前 3 个估计器
生成 50 组随机参数。在同一批次中运行所有 150 个。
第二次集成运行
- 重复这些过程直到满足停止条件
对于之前的前 3 个估计器中的每一个,从调优器中采样 10 个参数。在同一批次中运行所有 30 个。
运行集成
- 参数
X (pd.DataFrame) – 训练数据。
y (pd.Series) – 目标数据。
problem_type (ProblemType) – 与训练数据关联的问题类型。
sampler_name (BaseSampler) – 用于预处理的采样器。
tuner_class (class) – Tuner 的子类,用于为每个管道寻找参数。默认值 None 表示将使用 SKOptTuner。
random_seed (int) – 随机数生成器的种子。默认为 0。
search_parameters (dict 或 None) – 指定用于迭代管道的管道级别参数和自定义超参数范围。超参数范围必须作为 skopt.space 对象传入。默认为 None。
n_jobs (int 或 None) – 描述管道并行级别的非负整数。默认为 -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 更改为 multiclass 或 regression。对于默认算法,这仅适用于非朴素批次中的估计器。
excluded_model_families (list(str, ModelFamily)) – 在构建管道时要从使用的估计器中排除的模型族列表。对于默认算法,这仅排除非朴素批次中的估计器。
方法
注册评估管道的结果。在批次 2 中,将使用从特征选择器中选定的列名作为列选择器。有关最佳管道的信息也会在此处更新。
返回迄今为止已推荐的批次数。
返回 AutoMLSearch 默认应运行的最大批次数。
获取下一批要评估的管道。
返回第 n 个批次中的管道数量。
返回迄今为止已推荐的管道数量。
- 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)#
返回迄今为止已推荐的管道数量。