实验设置¶
本节介绍可用于自定义实验的设置,例如总运行时、再现性级别、管道构建、特征大脑控制、添加 config.toml 设置等。
max_runtime_minutes
¶
Max Runtime in Minutes Before Triggering the Finish Button
指定实验的最大运行时(以分钟为单位)。这相当于在指定时间值过去一半后按下 完成 按钮。请注意,强制执行的总运行时仅为近似值。
此值默认为 1440,相当于大约 24 小时的总运行时。当 12 个小时过去后,将自动选择 完成 按钮,并且 Driverless AI 随后将尽量在剩余的 12 个小时内完成整个实验。将此值设为 0 可禁用此项设置。
请注意,此项设置适用于每个实验,因此,如果构建排行榜模型(n 个),则将分别应用于每个实验(即,所允许的总运行时将为 n * 24 小时。此时间估计值假设按顺序每次运行一个实验)
max_runtime_minutes_until_abort
¶
Max Runtime in Minutes Before Triggering the Abort Button
在触发中止按钮前,指定实验的最大运行时(以分钟为单位)。此选项保留为摘要和日志压缩文件而生成的实验工件,同时继续生成其他工件。此值默认设置为 10080 分钟(7 天)。
请注意,此项设置适用于每个实验,因此,如果构建排行榜模型(比如说 n 个),则将分别应用于每个实验(即,所允许的总运行时将为 n * 7 天。此时间估计值假设按顺序每次运行一个实验)。另请参阅 time_abort.
pipeline-building-recipe
¶
Pipeline Building Recipe
指定“管道构建”插件类型(覆盖 GUI 设置)。从以下类型中选择:
自动:指定所有模型和特征均由实验设置、config.toml 设置和特征工程工作量自动确定。(默认)
服从:与 自动 类型相似,除了以下设置:
将可解释性设置为 10。
仅使用 GLM 或增强器作为“giblinear”
将 Fixed ensemble level 设置为 0。
将 Feature brain level 设置为 0。
将最大特征交互深度设置为 1,即没有交互。
将目标转换器设置为 ’identity’ 以进行回归。
不使用 distribution shift 检测。
Monotonic_gbm :与 自动 类型相似,除了以下设置:
启用单调性约束
仅使用 LightGBM 模型。
删除与目标的不相关性至少为 0.01 的特征。请参阅 monotonicity-constraints-drop-low-correlation-features 和 monotonicity-constraints-correlation-threshold.
不构建集成模型,即设置
fixed_ensemble_level=0
不使用 feature brain 来确保每次重启均相同。
将 Interaction depth 设置为 1,即不进行多特征交互以避免复杂性。
不将目标转换应用于回归问题,即将 target_transformer 设置为 ‘identity’. 等效的 config.toml 参数为
recipe=['monotonic_gbm']
.禁用 num_as_cat 特征转换。
所包含的转换器列表
“OriginalTransformer”,#数值(无聚类、无交互、无 num->cat)‘CatOriginalTransformer’, ‘RawTransformer’,’CVTargetEncodeTransformer’, ‘FrequentTransformer’,’WeightOfEvidenceTransformer’,’OneHotEncodingTransformer’, #分类(但是无 num-cat)‘CatTransformer’,’StringConcatTransformer’, # 仅适用于大数据‘DateOriginalTransformer’, ‘DateTimeOriginalTransformer’, ‘DatesTransformer’, ‘DateTimeDiffTransformer’, ‘IsHolidayTransformer’, ‘LagsTransformer’, ‘EwmaLagsTransformer’, ‘LagsInteractionTransformer’, ‘LagsAggregatesTransformer’,#日期/时间‘TextOriginalTransformer’, ‘TextTransformer’, ‘StrFeatureTransformer’, ‘TextCNNTransformer’, ‘TextBiGRUTransformer’, ‘TextCharCNNTransformer’, ‘BERTTransformer’,#文本‘ImageOriginalTransformer’, ‘ImageVectorizerTransformer’] #映像
相关参考,请参阅 Monotonicity Constraints in Driverless AI.
Kaggle:与 自动 类型相似,除了以下设置:
任何外部验证集均将与训练集串联,并且目标被标记为缺失。
测试集与训练集串联,并且目标被标记为缺失。
不使用此目标的转换器将被允许对整个训练集、验证集和测试集进行 fit_transform`.
有几项 config.toml 专家选项启用限制。
nlp_model:仅启用基于 Pytorch 的 NLP BERT 模型,以处理纯文本:
included_models = bert_models [‘TextBERTModel’, ‘TextXLNETModel’, ‘TextXLMModel’,’TextRoBERTaModel’, ‘TextDistilBERTModel’, ‘TextALBERTModel’, ‘TextCamemBERTModel’, ‘TextXLMRobertaModel’]
enable_pytorch_nlp = ‘on’
更多信息,请参阅 Driverless AI 中的 NLP
nlp_transformer:仅启用基于 Pytorch、用于处理纯文本的 BERT 转换器:
included_transformers = [‘BERTTransformer’]
excluded_models = bert_models
enable_pytorch_nlp = ‘on’
更多信息,请参阅 Driverless AI 中的 NLP
image_model:仅启用用于处理纯映像的映像模型 (ImageAutoModel)。更多信息,请参阅 自动图像模型.
请注意:
此选项禁用遗传算法 (GA)。
仅在选择此选项时可使用映像见解。
Image_transformer:仅启用用于处理纯映像的 ImageVectorizer 转换器。更多信息,请参阅 嵌入向量转换器 (Image Vectorizer).
enable_genetic_algorithm
¶
Enable Genetic Algorithm for Selection and Tuning of Features and Models
指定是否启用遗传算法,以用于特征和模型的选择和超参数调优:
自动:默认值为 ‘自动’ ,除非是纯 NLP 或映像实验,否则此选项与 ‘开启’ 作用相同。
开启:将 Driverless AI 遗传算法用于特征工程和模型调优及选择。
Optuna:当选择 ‘Optuna’ 时,通过 Optuna 进行模型超参数调优,并且 Driverless AI 遗传算法将被用于特征工程中。在选择 Optuna 的情况下,迭代面板中显示的评分为最佳评分和实验评分。Optuna 模式目前仅适用于 XGBoost、LightGBM 和 CatBoost(自定义插件)。如果默认启用 Pruner,则 Optuna 模式将禁用评估指标 (eval_metric) 突变,因此剪枝算法将在每次尝试时使用相同的指标进行比较。
关闭:当设置为 ‘关闭’ 时,将使用默认的特征工程和特征选择来训练最终管道。
等效的 config.toml 参数为 enable_genetic_algorithm
.
tournament_style
¶
Tournament Model for Genetic Algorithm
选择一种方式来决定每次迭代中的最佳模型。默认设置为 自动 。可从以下方式中选择:
自动:根据准确度和可解释性进行选择
均匀:群体中的所有个体彼此竞争,以决出最佳(可能会导致所有模型(例如,最终集成中的 LightGBM 模型)因缺乏多样性而无法改善集成性能)
全栈:从最优模型和特征类型中选择
特征:具有相似特征类型的各个模型彼此竞争(如果目标编码、频率编码和其他特征集将带来好的结果,即为良性竞争)
模型:具有相同模型类型的各个模型彼此竞争(如果多个模型表现良好,而有些模型表现不好,但仍有助于改进集成,即为良性竞争)
对于每种情况,均使用轮询机制从模型类型中选择最佳评分。
如果 enable_genetic_algorithm==’Optuna’,则在使用遗传算法的过程中,各个模型均将在没有竞争的情况下自我突变。此种竞争仅用于删减个体模型,例如,“调优 -> 演变”和“演变 -> 最终模型”。
make_python_scoring_pipeline
¶
Make Python Scoring Pipeline
指定是否自动构建用于实验的 Python 评分管道。选择 开启 或 自动 (默认)以便在实验完成后可立即下载 Python 评分管道。选择 关闭 可禁止自动创建 Python 评分管道。
make_mojo_scoring_pipeline
¶
Make MOJO Scoring Pipeline
指定是否自动构建用于实验的 MOJO (Java) 评分管道。选择 开启 以便在实验完成后可立即下载 MOJO 评分管道。通过此选项,可删除任何阻止创建管道的功能。选择 关闭 可禁止自动创建 MOJO 评分管道。选择 自动 (默认)可尝试在不删除任何功能的情况下创建 MOJO 评分管道。
reduce_mojo_size
¶
Attempt to Reduce the Size of the MOJO (Small MOJO)
指定是否在创建实验时构建小型 MOJO 评分管道。较小的 MOJO 在评分过程中占用的内存较少。此项设置将实验的最大 interaction depth 限制为 3,将 ensemble level 设置为 0**(即,没有最终管道的集成模型)以及将模型中的 :ref:“maximum number of features <nfeatures_max>” 限制为 **200,以尝试减小 mojo。请注意,由于限制了特征工程和模型构建空间的复杂性,这些设置在某些情况下可影响整个模型的预测准确性。
默认会禁用此项设置。等效的 config.toml 设置为 reduce_mojo_size
benchmark_mojo_latency
¶
Measure MOJO Scoring Latency
指定在 MOJO 构建时是否测量 MOJO 评分延迟。此项设置默认为**自动** 。在这种情况下,如果 pipeline.mojo 文件小于 100MB,则将测量 MOJO 评分延迟。
mojo_building_timeout
¶
Timeout in Seconds to Wait for MOJO Creation at End of Experiment
指定实验结束时等待 MOJO 构建的时间(以秒为单位)。如果 MOJO 构建进程超时,仍可从 GUI 或 R 和 Python 客户端生成 MOJO(超时约束不适用于 GUI 或 R 和 Python 客户端)。默认值为 1800 秒(30 分钟)。
mojo_building_parallelism
¶
Number of Parallel Workers to Use During MOJO Creation
指定在 MOJO 构建期间要使用的并行工作节点数量。较大的值可加快 MOJO 的构建速度,但需占用更多内存。将此值设置为 -1(默认值)即可使用所有的物理内核。
make_pipeline_visualization
¶
Make Pipeline Visualization
指定是否在实验结束时将评分管道可视化。此项设置默认为 自动 。请注意, 可视化评分管道 特征是实验性的,不可用于已弃用的模型。可视化可用于所有新创建的实验。
make_autoreport
¶
Make AutoDoc
指定是否在实验结束后创建实验 AutoDoc。默认启用此项设置。
min_num_rows
¶
Min Number of Rows Needed to Run an Experiment
指定为运行实验而必须在数据集中包含的最小行数,默认值为 100。
kaggle_username
¶
Kaggle Username
可选择指定您的 Kaggle 用户名,以允许自动提交测试集预测结果并对其进行评分。如果指定此选项,则您必须同时指定 Kaggle 密钥 选项的值。如果您没有 Kaggle 帐户,可前往 https://www.kaggle.com 注册。
kaggle_key
¶
Kaggle Key
指定您的 Kaggle API 密钥,以允许自动提交测试集预测结果并对其进行评分。如果指定此选项,则您必须同时指定 Kaggle 用户名 选项的值。请参阅 https://github.com/Kaggle/kaggle-api#api-credentials,了解更多关于获取 Kaggle API 凭据的信息。
kaggle_timeout
¶
Kaggle Submission Timeout in Seconds
指定 Kaggle 提交超时(以秒为单位)。默认值为 120 秒。
reproducibility_level
¶
Reproducibility Level
指定以下再现性级别之一。请注意,仅当在实验中启用 可再现 选项时,方可使用此项设置。
1 = 相同 O/S、相同 CPU 和相同 GPU(默认)得到的实验结果相同
2 = 相同 O/S、相同 CPU 架构和相同 GPU 架构得到的实验结果相同
3 = 相同 O/S 和相同 CPU 架构(不包括 GPU)得到的实验结果相同
4 = 使用相同 O/S 得到的实验结果相同(最佳逼近)
默认值为 1。
seed
¶
Random Seed
指定用于实验的随机数种子。当对种子进行定义并启用(非默认)“可再现”按钮时,算法的行为将具有确定性。
allow_different_classes_across_fold_splits
¶
Allow Different Sets of Classes Across All Train/Validation Fold Splits
(请注意:仅适用于多类问题。)指定是否在特征演变期间启用完全交叉验证(多折),而非使用单一保持拆分。默认会启用此项设置。
max_num_classes
¶
Max Number of Classes for Classification Problems
指定分类问题允许的最大类别数。类别数越高,某些进程耗时可能就越长。内存需求也会因此而增加。默认值为 200。
max_num_classes_compute_roc
¶
Max Number of Classes to Compute ROC and Confusion Matrix for Classification Problems
指定计算 ROC 和 CM 时要使用的最大类别数。当类别数超过此值时,将应用由 roc_reduce_type
指定的缩减类型。默认值为 200 且不能小于 2。
max_num_classes_client_and_gui
¶
Max Number of Classes to Show in GUI for Confusion Matrix
指定要在 CM 的 GUI 中显示的最大类别数,显示前 max_num_classes_client_and_gui
个标签。默认值为 10,但是任何大于 6 的值均会导致显示的诊断信息被截断。请注意,如果在 config.toml 中更改此值并重启服务器,则此项设置将仅可修改通过客户端-GUI 启动的诊断。若需控制实验绘图,则必须在专家设置面板中更改此值。
roc_reduce_type
¶
ROC/CM Reduction Technique for Large Class Counts
指定用于类别数较大的 ROC 混淆矩阵缩减方法。
行 (默认):通过对行进行随机抽样以进行缩减
类别:通过将类别截断至不超过
max_num_classes_compute_roc
指定的值以进行缩减
feature_brain1
¶
Model/Feature Brain Level
指定是否使用 H2O.ai 大脑,其可就之前的实验启用本地缓存和智能重用(检查点),以生成对新实验有用的特征和模型。H2O.ai 大脑还可用于控制已暂停或已中断实验的检查点。
启用时,如果缓存文件满足以下条件,则将使用 H2O.ai 大脑缓存:
具有用于相似实验类型的任何匹配列名称和类型
具有完全匹配的类别
具有完全匹配的类别标签
具有匹配的基本时间序列选项
缓存具有相等或更低的可解释性
新实验允许使用主模型(增强器)
-1:不使用任何大脑缓存(默认)
0:不使用任何大脑缓存,但仍写入缓存。用例:想要保存模型以供之后使用,但是我们想在没有任何大脑模型的情况下构建当前模型。
1:最后一个最佳个体模型中的智能检查点。用例:想要使用最新的匹配模型。但是匹配可能不够精准,因此需谨慎使用。
2:如果实验的所有列名称、列类型、类别、类别标签和时间序列选项均完全匹配,则使用智能检查点。用例:Driverless AI 扫描 H2O.ai 大脑缓存,以找到用于重新启动的最佳模型。
3:与级别 #1 的智能检查点相同,但是适用于整个群体。仅在大脑群体大小不足时进行调优。请注意,这将在单次迭代中对整个群体进行重新评分,因此,完成首次迭代可能需要更长的时间。
4:与级别 #2 的智能检查点相同,但是适用于整个群体。仅在大脑群体大小不足时进行调优。请注意,这将在单次迭代中对整个群体进行重新评分,因此,完成首次迭代可能需要更长的时间。
5:与级别 #4 的智能检查点相同,但是将扫描群体的整个大脑缓存,以获取评分最高的个体模型。请注意,如果缓存很大,则由于大脑缓存扫描,可能拖慢速度。
启用时,H2O.ai 大脑元模型文件将存储于 H2O.ai_brain 目录中。此外,默认大脑大小的最大值为 20GB。目录和最大大小均可在 config.toml 文件中进行修改。默认值为 2。
feature_brain2
¶
Feature Brain Save Every Which Iteration
保存特征大脑迭代,每次 iter_num % feature_brain_iterations_save_every_iteration == 0,以便在 which_iteration_brain >= 0 进行重启/调整。默认值为 (0)。
-1:不使用任何大脑缓存。
0:不使用任何大脑缓存,但仍写入缓存。
1:如果传入了旧 experiment_id ,则智能地设置检查点(例如,通过在 GUI 上运行“resume one like this”)
2:如果实验匹配所有列名称、列类型、类、类标签和时间序列选项,则智能地设置检查点。(默认设置)
3:智能地设置检查点(和 1 级相同),但是仅对整个群体设置。只有在大脑群体大小不够时才进行调优。
4:智能地设置检查点(和 2 级相同),但是仅对整个群体设置。只有在大脑群体大小不够时才进行调优。
5:智能地设置检查点(和 4 级相同),但是将对群体的整个大脑缓存进行扫描(如果选择,将从恢复的实验开始),以获取评分最高的个体。
启用时,H2O.ai 大脑元模型文件将存储于 H2O.ai_brain 目录中。此外,默认大脑大小的最大值为 20GB。在 config.toml 文件中可以更改目录和最大大小。
feature_brain3
¶
Feature Brain Restart from Which Iteration
当使用已恢复的 ID 执行重启或对类型 feature_brain_level 进行调整时,指定需从哪一次迭代开始,而非仅从最后一次最佳迭代开始。可用选项包括:
-1:使用最后一次最佳迭代
1:使用 feature_brain_iterations_save_every_iteration=1 或其他数字运行一次实验
2:确定您想要从哪次迭代大脑转储中进行重新启动或调整
3:从原始实验进行重新启动或调整,并在专家设置中将 which_iteration_brain 设置为此处的数字。
请注意:如果从调优迭代中进行重启,则将调出已评分的整个调优群体,并将其用于特征演变。默认值为 -1。
feature_brain4
¶
Feature Brain Refit Uses Same Best Individual
指定是否在调整时使用相同的最佳个体模型。禁用此项设置将允许重新排列最佳个体模型的顺序,以获得更好的最终结果。启用此项设置让您能够查看完全相同的模型或特征(仅添加一个新特征)。默认会禁用此项设置。
feature_brain5
¶
Feature Brain Adds Features with New Columns Even During Retraining of Final Model
指定即使在重新训练最终模型时,是否需将新列中的其他特征添加至管道中。如果不论新数据集中的新列如何,您都想要保留相同的管道,则使用此选项。由于移位或泄露检测,新数据可能会导致又有特征被删除。禁用此项设置可避免添加任何列作为新特征,以在更改数据时完全保留管道。默认会启用此项设置。
force_model_restart_to_defaults
¶
Restart-Refit Use Default Model Settings If Model Switches
当重新启动或调整时,如果原始模型类别不再可用,则指定是否使用模型类别的默认设置。如果禁用此项设置,则将使用原始超参数。(请注意,这可能会导致错误。)默认会启用此项设置。
min_dai_iterations
¶
Min DAI Iterations
指定实验中 Driverless AI 迭代次数的最小值。如果在尽管评分不会提高的情况下,仍想要继续使用时,可在重新启动时使用此项设置。默认值为 0。
target_transformer
¶
Select Target Transformation of the Target for Regression Problems
指定是否自动选择用于回归问题的目标转换。可用选项包括:
auto
identity
identity_noclip
center
standardize
unit_box
log
log_noclip
square
sqrt
double_sqrt
inverse
logit
sigmoid
设置为 auto (默认)时,如果将**准确度**设置为 tune_target_transform_accuracy_switch
配置选项的值(默认设置为 5)或更大的值,则 Driverless AI 将自动选择最佳目标转换器。选择 identity_noclip 可自动关闭所有目标转换。除了 center、standardize、identity_noclip 和 log_noclip 以外,其他所有转换器均执行剪切,以将预测结果限制在训练数据的目标域中,因此如果您想要启用外推法,则请避免使用这些转换器。
等效的 config.toml 参数为 target_transformer
.
fixed_num_folds_evolution
¶
Number of Cross-Validation Folds for Feature Evolution
指定用于特征演变的交叉验证折叠(如果 >= 2)的固定数量。请注意,实际允许的折叠数可能会小于指定值,并且在实验运行时会确定允许的折叠数量。默认值为 -1(自动)。
fixed_num_folds
¶
Number of Cross-Validation Folds for Final Model
指定用于最终模型的交叉验证折叠(如果 >= 2)的固定数量。请注意,实际允许的折叠数可能会小于指定值,并且在实验运行时会确定允许的折叠数量。默认值为 -1(自动)。
fixed_only_first_fold_model
¶
Force Only First Fold for Models
指定是否仅强制执行模型的首次折叠。从 自动 (默认)、开启 或 关闭 中进行选择。设置 “开启” 可强制执行模型的首次折叠。不论数据如何,这都能有助于迅速运行
feature_evolution_data_size
¶
Max Number of Rows Times Number of Columns for Feature Evolution Data Splits
指定允许用于特征演变数据拆分(而非最终管道)的最大行数。默认值为 100,000,000。
final_pipeline_data_size
¶
Max Number of Rows Times Number of Columns for Reducing Training Dataset
指定用于训练最终管道的行数乘以列数的上限。默认值为 500,000,000。
max_validation_to_training_size_ratio_for_final_ensemble
¶
Maximum Size of Validation Data Relative to Training Data
指定验证数据相对于训练数据的最大大小。值越小,最终管道模型训练进程越快。请注意,将始终对提供的完整数据集提供最终模型预测结果和评分。默认值为 2.0。
force_stratified_splits_for_imbalanced_threshold_binary
¶
Perform Stratified Sampling for Binary Classification If the Target Is More Imbalanced Than This
对于二元分类实验,指定目标列少数类别与多数类别的比率阈值,超出此阈值,将执行分层抽样。如果未超出阈值,则执行随机抽样。默认值为 0.01。您可以选择将此值设置为 0,从而仅执行随机抽样,或者将此值设置为 1,从而仅执行分层抽样。
mli_custom
¶
Add to config.toml via toml String
从 config.toml 文件中指定要包含在实验中的任何其他配置覆盖项。(请参阅 样本 config.toml 文件 一节,查看实验过程中可被覆盖的选项。)设置此项设置将覆盖所有其他设置。使用``n``分隔多个配置覆盖项。例如,以下示例对 LightGBM 模型启用了泊松分布并禁用了目标转换器调优。请注意,在本示例中,对双引号进行了转义 (\" \"
)。
params_lightgbm=\"{'objective':'poisson'}\" \n target_transformer=identity
或者您可以指定类似于以下设置的配置覆盖项,而无需转义双引号:
""enable_glm="off" \n enable_xgboost_gbm="off" \n enable_lightgbm="off" \n enable_tensorflow="on"""
""max_cores=10 \n data_precision="float32" \n max_rows_feature_evolution=50000000000 \n ensemble_accuracy_switch=11 \n feature_engineering_effort=1 \n target_transformer="identity" \n tournament_feature_style_accuracy_switch=5 \n params_tensorflow="{'layers': [100, 100, 100, 100, 100, 100]}"""
运行 Python 客户端时,配置覆盖项将设置如下:
model = h2o.start_experiment_sync(
dataset_key=train.key,
target_col='target',
is_classification=True,
accuracy=7,
time=5,
interpretability=1,
config_overrides="""
feature_brain_level=0
enable_lightgbm="off"
enable_xgboost_gbm="off"
enable_ftrl="off"
"""
)
last_recipe
¶
last_recipe
内部帮助程序,用于允许存储更改后的配置
time_abort
¶
Time to trigger the ‘Abort’ button
如果此时尚未完成实验,可按下中止按钮。请注意,这同样适用于排行榜模型,即,如果所有排行榜实验均未完成,则将在此实际时间过后中止整个排行榜。另请参阅 max_runtime_minutes_until_abort,了解如何控制每个实验中止时间。
这可接受以 time_abort_format 指定的格式呈现的时间(默认设置为 %Y-%m-%d %H:%M:%S)。这假设了由 config.toml 中的 time_abort_timezone 设置时区(默认设置为 UTC)。用户还可指定 UTC 时间 1970-01-01 00:00:00 之后的整数秒数。
这将适用于运行实验的 DAI 工作线程的时间。类似于 max_runtime_minutes_until_abort,时间中止将保留目前为止为摘要和日志 zip 文件生成的实验工件。如果用户克隆此实验以进行重新运行/调整/重新启动,则此绝对时间将适用于此类实验或排行榜实验。