iterative_algorithm#
一种 AutoML 算法,它首先使用默认参数拟合一轮基础管线,然后按性能顺序对每个管线进行一轮参数调优。
模块内容#
类摘要#
一种 AutoML 算法,它首先使用默认参数拟合一轮基础管线,然后按性能顺序对每个管线进行一轮参数调优。 |
内容#
- class evalml.automl.automl_algorithm.iterative_algorithm.IterativeAlgorithm(X, y, problem_type, sampler_name=None, allowed_model_families=None, excluded_model_families=None, allowed_component_graphs=None, max_batches=None, max_iterations=None, tuner_class=None, random_seed=0, pipelines_per_batch=5, n_jobs=-1, number_features=None, ensembling=False, text_in_ensembling=False, search_parameters=None, _estimator_family_order=None, allow_long_running_models=False, features=None, verbose=False, exclude_featurizers=None)[source]#
一种 AutoML 算法,它首先使用默认参数拟合一轮基础管线,然后按性能顺序对每个管线进行一轮参数调优。
- 参数
X (pd.DataFrame) – 训练数据。
y (pd.Series) – 目标数据。
problem_type (ProblemType) – 与训练数据相关的问题类型。
sampler_name (BaseSampler) – 用于预处理的采样器。默认为 None。
allowed_model_families (list(str, ModelFamily)) – 要搜索的模型族。默认值 None 搜索所有模型族。运行 evalml.pipelines.components.utils.allowed_model_families(“binary”) 查看选项。根据问题类型将 binary 更改为 multiclass 或 regression。请注意,如果提供了 allowed_pipelines,则此参数将被忽略。
excluded_model_families (list(str, ModelFamily)) – 构建管线时要排除的估计器模型族列表。
allowed_component_graphs (dict) –
一个列表或 ComponentGraphs 的字典,指示搜索中允许的组件图。格式应遵循 { “Name_0”: [组件列表], “Name_1”: [ComponentGraph(…)] }
默认值 None 表示允许此问题类型的所有管线组件图。设置此字段将导致 allowed_model_families 被忽略。
例如 allowed_component_graphs = { “My_Graph”: [“Imputer”, “One Hot Encoder”, “Random Forest Classifier”] }
max_batches (int) – 要评估的最大批次数。用于确定集成。默认为 None。
max_iterations (int) – 要评估的最大迭代次数。用于确定集成。默认为 None。
tuner_class (class) – Tuner 的子类,用于查找每个管线的参数。默认值 None 表示将使用 SKOptTuner。
random_seed (int) – 随机数生成器的种子。默认为 0。
pipelines_per_batch (int) – 除第一批外,每批要评估的管线数量。默认为 5。
n_jobs (int or None) – 描述管线并行度级别的非负整数。默认为 None。
number_features (int) – 输入特征中的列数。默认为 None。
ensembling (boolean) – 如果为 True,则在迭代完所有允许的管线类后,在单独的批次中运行集成。默认为 False。
text_in_ensembling (boolean) – 如果为 True 且 ensembling 为 True,则 n_jobs 将设置为 1 以避免下游 sklearn 堆叠中与 nltk 相关的问题。默认为 False。
search_parameters (dict or None) – 为要迭代的管线指定的管线级参数和自定义超参数范围。超参数范围必须作为 skopt.space 对象传入。默认为 None。
_estimator_family_order (list(ModelFamily) or None) – 指定第一批的排序顺序。默认为 None,此时使用 _ESTIMATOR_FAMILY_ORDER。
allow_long_running_models (bool) – 是否允许在大型多分类问题中使用运行时间较长的模型。如果为 False 且未提供管线、组件图或模型族,则当多分类目标超过 75 个时,AutoMLSearch 将不使用 Elastic Net 或 XGBoost;当多分类目标超过 150 个时,将不使用 CatBoost。默认为 False。
features (list) – 在 AutoML 管线中运行 DFS 的特征列表。默认为 None。仅当输入中存在特征使用的列且特征本身不在输入中时,才会计算特征。
verbose (boolean) – 是否显示有关管线构建的日志信息。默认为 False。
exclude_featurizers (list[str]) – 要从 IterativeAlgorithm 构建的管线中排除的特征化器组件列表。有效选项包括 “DatetimeFeaturizer”, “EmailFeaturizer”, “URLFeaturizer”, “NaturalLanguageFeaturizer”, “TimeSeriesFeaturizer”。
方法
注册评估管线的结果。
返回迄今为止已推荐的批次数。
返回 AutoMLSearch 默认应运行的最大批次数。
获取下一批要评估的管线。
返回第 n 批中的管线数量。
返回迄今为止已推荐的管线数量。
- add_result(self, score_to_minimize, pipeline, trained_pipeline_results, cached_data=None)[source]#
注册评估管线的结果。
- 参数
score_to_minimize (float) – 此管线在主要目标上获得的分数,已转换,因此较低的值表示更好的管线。
pipeline (PipelineBase) – 用于计算分数的已训练管线对象。
trained_pipeline_results (dict) – 训练管线的结果。
cached_data (dict) – 缓存数据的字典,其中键是模型族。预期格式为 {模型族: {hash1: 已训练的组件图, hash2: 已训练的组件图…}…}。默认为 None。
- 抛出
ValueError – 如果默认参数不在可接受的超参数范围内。
- property batch_number(self)#
返回迄今为止已推荐的批次数。
- property default_max_batches(self)#
返回 AutoMLSearch 默认应运行的最大批次数。
- next_batch(self)[source]#
获取下一批要评估的管线。
- 返回
PipelineBase 子类实例的列表,准备进行训练和评估。
- 返回类型
list[PipelineBase]
- 抛出
AutoMLAlgorithmException – 如果第一批没有报告结果。
- num_pipelines_per_batch(self, batch_number)[source]#
返回第 n 批中的管线数量。
- 参数
batch_number (int) – 计算管线数量的批次。
- 返回
给定批次中的管线数量。
- 返回类型
int
- property pipeline_number(self)#
返回迄今为止已推荐的管线数量。