TabularPredictor.fit

TabularPredictor.fit(train_data: DataFrame | str, tuning_data: DataFrame | str = None, time_limit: float = None, presets: list[str] | str = None, hyperparameters: dict | str = None, feature_metadata='infer', infer_limit: float = None, infer_limit_batch_size: int = None, fit_weighted_ensemble: bool = True, fit_full_last_level_weighted_ensemble: bool = True, full_weighted_ensemble_additionally: bool = False, dynamic_stacking: bool | str = False, calibrate_decision_threshold: bool | str = 'auto', num_cpus: int | str = 'auto', num_gpus: int | str = 'auto', fit_strategy: Literal['sequential', 'parallel'] = 'sequential', memory_limit: float | str = 'auto', callbacks: list[AbstractCallback] = None, **kwargs) TabularPredictor[source]

训练模型,根据数据表的其他列(特征)预测某一列(标签)。

参数
  • train_data (pd.DataFrame 或 str) – 训练数据的表格,格式为 pandas DataFrame。如果传入 str,train_data 将使用 str 值作为文件路径加载。

  • tuning_data (pd.DataFrame 或 str,可选) – 包含验证数据的另一个数据集,用于调优过程,如早停和超参数调优。此数据集应与 train_data 格式相同。如果传入 str,tuning_data 将使用 str 值作为文件路径加载。注意:返回的最终模型可能同时在 tuning_datatrain_data 上训练。请勿在此处提供您的评估测试数据!特别地,当 num_bag_folds > 0 或 num_stack_levels > 0 时,模型将在 tuning_datatrain_data 两者上进行训练。如果 tuning_data = Nonefit() 将自动从 train_data 中随机留出一些验证示例。

  • time_limit (int, default = None) – fit() 应该运行的大致时长(以秒为单位的实际时间)。如果未指定,fit() 将一直运行直到所有模型完成训练,但不会重复 bagging 模型,除非指定了 num_bag_sets

  • presets (liststrdict, default = ['medium_quality']) –

    fit() 中各种参数的预设配置列表。可以显著影响训练模型的预测精度、内存占用和推理延迟,以及返回的 predictor 的其他各种属性。建议在熟悉 AutoGluon 之前指定预设,并避免指定大多数其他 fit() 参数或模型超参数。例如,要获得最准确的整体预测器(无论其效率如何),请设置 presets=’best_quality’。要在磁盘使用量最小的情况下获得高质量结果,请设置 presets=[‘good_quality’, ‘optimize_for_deployment’] fit() 中用户指定的任何参数都将覆盖预设使用的值。如果指定预设列表,后面的预设将覆盖前面更改相同参数的预设。有关提供的预设的精确定义,请参阅文件:autogluon/tabular/configs/presets_configs.py。用户可以通过将参数值字典作为列表元素传入来指定自定义预设。

    可用预设:[‘best_quality’, ‘high_quality’, ‘good_quality’, ‘medium_quality’, ‘experimental_quality’, ‘optimize_for_deployment’, ‘interpretable’, ‘ignore_text’]

    建议在单次调用 fit() 时仅使用一个基于 quality 的预设,因为它们会修改许多相同的参数,并且相互不兼容。

    深入预设信息
    best_quality={‘auto_stack’: True, ‘dynamic_stacking’: ‘auto’, ‘hyperparameters’: ‘zeroshot’}

    预测精度最高,对推理时间或磁盘使用量考虑较少。通过指定较大的 time_limit 值可以获得更好的结果。推荐用于需要最高模型精度的应用。

    high_quality={‘auto_stack’: True, ‘dynamic_stacking’: ‘auto’, ‘hyperparameters’: ‘zeroshot’, ‘refit_full’: True, ‘set_best_to_refit_full’: True, ‘save_bag_folds’: False}

    预测精度高,推理速度快。推理速度比 best_quality 快约 8 倍,磁盘使用量低约 8 倍。推荐用于需要合理推理速度和/或模型大小的应用。

    good_quality={‘auto_stack’: True, ‘dynamic_stacking’: ‘auto’, ‘hyperparameters’: ‘light’, ‘refit_full’: True, ‘set_best_to_refit_full’: True, ‘save_bag_folds’: False}

    预测精度良好,推理速度非常快。推理速度比 high_quality 快约 4 倍,磁盘使用量低约 4 倍。推荐用于需要快速推理速度的应用。

    medium_quality={‘auto_stack’: False}

    预测精度中等,推理速度和训练时间都非常快。训练速度比 good_quality 快约 20 倍。这是 AutoGluon 的默认预设,但通常只应用于快速原型设计,因为 good_quality 可获得显著更好的预测精度和更快的推理时间。

    experimental_quality={‘auto_stack’: True, ‘dynamic_stacking’: ‘auto’, ‘hyperparameters’: ‘experimental’, ‘fit_strategy’: ‘parallel’, ‘num_gpus’: 0}

    此预设作为尖端特性和模型的试验场,这些特性和模型可能在未来版本中添加到 best_quality 预设中。推荐在已经使用 best_quality 并希望进一步提升性能时使用。

    optimize_for_deployment={‘keep_only_best’: True, ‘save_space’: True}

    通过删除未使用的模型和移除训练 artifact 来立即优化结果以便部署。通常可以将磁盘使用量减少约 2-4 倍,而不会对模型精度或推理速度产生负面影响。这将禁用许多高级功能,但对推理没有影响。这将使某些功能(如 predictor.leaderboard()predictor.fit_summary())的信息量降低。

    由于在此预设下将删除未使用的模型,predictor.leaderboard()predictor.fit_summary() 等方法将不再显示 fit() 期间训练的所有模型。

    推荐用于 AutoGluon 训练的内部细节不重要且无意手动选择最终模型的应用。此预设与 good_quality 等其他预设搭配使用效果很好,可以得到非常紧凑的最终模型。与在 fit() 后直接调用 predictor.delete_models(models_to_keep=’best’, dry_run=False)predictor.save_space() 等效。

    interpretable={‘auto_stack’: False, ‘hyperparameters’: ‘interpretable’}

    仅训练 imodels 包中可解释的基于规则的模型。以预测精度换取简洁性。

    ignore_text={‘_feature_generator_kwargs’: {‘enable_text_ngram_features’: False, ‘enable_text_special_features’: False, ‘enable_raw_text_features’: False}}

    在检测到文本特征时禁用自动特征生成。这对于确定文本特征对最终结果有多大益处非常有用,同时也能确保在特征不是文本时不会被误认为文本。如果同时指定了 feature_generator,则忽略此项。

  • hyperparameters (strdict, default = 'default') –

    确定模型使用的超参数。如果传入 str,将使用预设的超参数配置。

    有效的 str 选项:[‘default’, ‘zeroshot’, ‘light’, ‘very_light’, ‘toy’, ‘multimodal’]

    ‘default’:AutoGluon 默认超参数,旨在以合理的磁盘使用量和推理时间获得强大的精度。用于 ‘medium_quality’ 预设。‘zeroshot’:从 TabRepo 在 200 个数据集上的集成模拟中学习到的强大模型组合。包含约 100 个模型,用于 ‘best_quality’ 和 ‘high_quality’ 预设。‘light’:生成较小的模型。通常会使推理速度更快,磁盘使用量更低,但精度会较差。用于 ‘good_quality’ 预设。‘very_light’:生成非常小的模型。行为与 ‘light’ 类似,但在许多情况下磁盘使用量减少 10 倍以上,并且精度进一步降低。‘toy’:生成极小的模型。仅在原型设计时使用,因为模型质量会严重下降。‘multimodal’:[实验性] 除表格模型外,还训练多模态 Transformer 模型。要求数据中包含一些文本列和 GPU。

    与 ‘best_quality’ presets 选项结合使用时,这可以在包含文本以及数值/类别列的多模态数据表中获得极强的结果。

    请参阅 autogluon/tabular/configs/hyperparameter_configs.py 了解与每个预设相关的超参数信息。

    键是字符串,表示要训练的模型类型。
    稳定的模型选项包括

    ‘GBM’ (LightGBM) ‘CAT’ (CatBoost) ‘XGB’ (XGBoost) ‘RF’ (随机森林) ‘XT’ (极端随机树) ‘KNN’ (k 近邻) ‘LR’ (线性回归) ‘NN_TORCH’ (使用 Pytorch 实现的神经网络) ‘FASTAI’ (使用 FastAI 后端的神经网络) ‘AG_AUTOMM’ (来自 autogluon.multimodalMultimodalPredictor。支持表格、文本和图像模态。需要 GPU。)

    实验性模型选项包括

    ‘FT_TRANSFORMER’ (表格 Transformer,推荐使用 GPU。对 >100 个特征的扩展性不佳。) ‘FASTTEXT’ (FastText。注意:长时间未测试。) ‘TABPFN’ (TabPFN。对 >100 个特征或 >1000 行的扩展性不佳,不支持回归。推理速度极慢。) ‘AG_TEXT_NN’ (多模态文本+表格模型,需要 GPU。建议改用其后继者 ‘AG_AUTOMM’。) ‘AG_IMAGE_NN’ (图像模型,需要 GPU。建议改用其后继者 ‘AG_AUTOMM’。)

    如果超参数中缺少某个键,则 fit() 不会训练该类型的任何模型。从超参数中省略模型键等同于将此模型键包含在 excluded_model_types 中。例如,如果您只想训练 (PyTorch) 神经网络而不训练其他类型的模型,请设置 hyperparameters = { ‘NN_TORCH’:{…} }

    值 = 每种模型类型的超参数设置字典,或字典列表。

    每个超参数可以是单个固定值,也可以是包含许多可能值的搜索空间。未指定的超参数将设置为默认值(如果 hyperparameter_tune_kwargs=’auto’,则设置为默认搜索空间)。注意:如果 hyperparameter_tune_kwargs=None(默认值),提供的任何搜索空间都会出错。要训练给定类型的多个模型,请将值设置为超参数字典列表。

    例如,hyperparameters = {‘RF’: [{‘criterion’: ‘gini’}, {‘criterion’: ‘entropy’}]} 将导致训练 2 个具有不同超参数的随机森林模型。

    高级功能:自带模型 / 自定义模型支持

    AutoGluon 完全支持自定义模型。有关使用 AutoGluon 创建和使用自定义模型的详细教程,请参阅 https://autogluon.cn/stable/tutorials/tabular/advanced/tabular-custom-model.html

    高级功能:自定义堆栈层

    默认情况下,AutoGluon 在堆栈集成期间在每个层重用相同的模型和模型超参数。要自定义此行为,请为每个堆栈层单独创建一个超参数字典,然后将它们作为值添加到新字典中,键等于堆栈层。

    示例:hyperparameters = {1: {‘RF’: rf_params1}, 2: {‘CAT’: [cat_params1, cat_params2], ‘NN_TORCH’: {}}} 这将产生一个堆栈集成,其中第 1 层有一个自定义随机森林,接着是第 2 层有两个带有自定义超参数的 CatBoost 模型和一个默认神经网络,总共 4 个模型。

    如果在 hyperparameters 中未指定某个层,则默认使用指定的最高层来训练模型。这也可以通过添加 ‘default’ 键来显式控制。

    默认
    hyperparameters = {

    ‘NN_TORCH’: {}, ‘GBM’: [

    {‘extra_trees’: True, ‘ag_args’: {‘name_suffix’: ‘XT’}}, {}, {

    ”learning_rate”: 0.03, “num_leaves”: 128, “feature_fraction”: 0.9, “min_data_in_leaf”: 3, “ag_args”: {“name_suffix”: “Large”, “priority”: 0, “hyperparameter_tune_kwargs”: None},

    },

    ], ‘CAT’: {}, ‘XGB’: {}, ‘FASTAI’: {}, ‘RF’: [

    {‘criterion’: ‘gini’, ‘ag_args’: {‘name_suffix’: ‘Gini’, ‘problem_types’: [‘binary’, ‘multiclass’]}}, {‘criterion’: ‘entropy’, ‘ag_args’: {‘name_suffix’: ‘Entr’, ‘problem_types’: [‘binary’, ‘multiclass’]}}, {‘criterion’: ‘squared_error’, ‘ag_args’: {‘name_suffix’: ‘MSE’, ‘problem_types’: [‘regression’]}},

    ], ‘XT’: [

    {‘criterion’: ‘gini’, ‘ag_args’: {‘name_suffix’: ‘Gini’, ‘problem_types’: [‘binary’, ‘multiclass’]}}, {‘criterion’: ‘entropy’, ‘ag_args’: {‘name_suffix’: ‘Entr’, ‘problem_types’: [‘binary’, ‘multiclass’]}}, {‘criterion’: ‘squared_error’, ‘ag_args’: {‘name_suffix’: ‘MSE’, ‘problem_types’: [‘regression’]}},

    ], ‘KNN’: [

    {‘weights’: ‘uniform’, ‘ag_args’: {‘name_suffix’: ‘Unif’}}, {‘weights’: ‘distance’, ‘ag_args’: {‘name_suffix’: ‘Dist’}},

    ],

    }

    有关您可以为每个模型指定的超参数的详细信息,请参阅以下文件
    NN: autogluon.tabular.models.tabular_nn.hyperparameters.parameters

    注意:某些超参数设置可能会导致这些神经网络训练速度慢得多。

    GBM: autogluon.tabular.models.lgb.hyperparameters.parameters

    另请参阅 lightGBM 文档:https://lightgbm.readthedocs.io/en/latest/Parameters.html

    CAT: autogluon.tabular.models.catboost.hyperparameters.parameters

    另请参阅 CatBoost 文档:https://catboost.ai/docs/concepts/parameter-tuning.html

    XGB: autogluon.tabular.models.xgboost.hyperparameters.parameters

    另请参阅 XGBoost 文档:https://xgboost.readthedocs.io/en/latest/parameter.html

    FASTAI: autogluon.tabular.models.fastainn.hyperparameters.parameters

    另请参阅 FastAI 文档:https://docs.fastai.net.cn/tabular.learner.html

    RF:请参阅 sklearn 文档:https://scikit-learn.cn/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

    注意:此模型禁用了超参数调优。

    XT:请参阅 sklearn 文档:https://scikit-learn.cn/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html

    注意:此模型禁用了超参数调优。

    KNN:请参阅 sklearn 文档:https://scikit-learn.cn/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

    注意:此模型禁用了超参数调优。

    LR: autogluon.tabular.models.lr.hyperparameters.parameters

    注意:此模型禁用了超参数调优。注意:‘penalty’ 参数可用于回归,指定正则化方法:支持 ‘L1’ 和 ‘L2’ 值。

    高级功能:自定义 AutoGluon 模型参数
    这些参数是可选的,可以在任何模型的超参数中指定。

    示例:hyperparameters = {‘RF’: {…, ‘ag_args’: {‘name_suffix’: ‘CustomModelSuffix’, ‘disable_in_hpo’: True}}

    ag_args:与模型的元属性相关的自定义选项字典,例如其名称、训练顺序、适用的问题类型以及使用的 HPO 类型。
    有效键

    name: (str) 模型名称。如果存在,此名称将覆盖 AutoGluon 的命名逻辑和所有其他名称参数。name_main: (str) 模型的主名称。示例:‘RandomForest’。name_prefix: (str) 为模型名称添加自定义前缀。默认情况下未使用。name_suffix: (str) 为模型名称添加自定义后缀。默认情况下未使用。priority: (int) 决定模型训练的顺序。值越大,模型越早训练。默认值范围从 100 (KNN) 到 0 (自定义),由模型类型决定。如果您希望此模型最先训练,请设置 priority = 999。problem_types: (list) 模型的有效问题类型列表。problem_types=[‘binary’] 将导致仅在 problem_type 为 ‘binary’ 时训练模型。disable_in_hpo: (bool) 如果为 True,则仅在 hyperparameter_tune_kwargs=None 时训练模型。valid_stacker: (bool) 如果为 False,则不会将模型作为 2 级或更高级别的 stacker 模型进行训练。valid_base: (bool) 如果为 False,则不会将模型作为 1 级(基本)模型进行训练。hyperparameter_tune_kwargs: (dict) 请参阅 TabularPredictor.fit() 的 hyperparameter_tune_kwargs 参数。如果在此处指定,将覆盖此模型的全局 HPO 设置。

    请参考默认超参数以了解这些选项的示例用法。

    ag_args_fit:与模型训练方式和约束相关的模型训练自定义选项字典。这些参数影响 stacker fold 模型,但不影响 stacker 模型本身。

    说明:time_limit 是给定特定模型训练的内部时间(以秒为单位),这部分由 predictor.fit() 期间给定的 time_limit 参数决定,但两者不等同。有效键

    stopping_metric: (str 或 autogluon.core.metrics.Scorer, default=None) 用于模型早停的指标。如果为 None,模型将自行决定。max_memory_usage_ratio: (float, default=1.0) 模型在早停或终止前允许的内存使用量相对于默认值的比率。值大于 1.0 将更容易出现内存不足错误。max_time_limit_ratio: (float, default=1.0) 在模型 fit() 期间使用的 time_limit 与提供值的比率。如果 time_limit=10max_time_limit_ratio=0.3,则 time_limit 将更改为 3。不改变 max_time_limit 或 min_time_limit 的值。max_time_limit: (float, default=None) 允许此模型训练的最长时间(以秒为单位)。如果提供的 time_limit 大于此值,它将被 max_time_limit 替换。min_time_limit: (float, default=0) 允许此模型至少训练此长时间(以秒为单位),无论否则将给予的时间限制。

    如果 min_time_limit >= max_time_limit,则 time_limit 将设置为 min_time_limit。如果 min_time_limit=None,则 time_limit 将设置为 None,且模型将没有训练时间限制。

    num_cpus(int 或 str, default=’auto’)

    模型训练期间使用的 CPU 数量。如果为 ‘auto’,模型将自行决定。

    num_gpus(int 或 str, default=’auto’)

    模型训练期间使用的 GPU 数量。如果为 ‘auto’,模型将自行决定。有些模型可以使用 GPU,但由于模型质量差异,默认不使用。设置为 0 可禁用 GPU 使用。

    ag_args_ensemble:所有模型共享的超参数字典,如果启用了 bagging 模式,则控制它们如何集成。
    有效键
    use_orig_features: [True, False, “never”],默认 True

    堆栈模型是否将使用原始特征以及堆栈特征进行训练(类似于跳跃连接)。如果为 True,将使用原始数据特征。如果为 False,将丢弃原始数据特征,仅使用堆栈特征,除非不存在堆栈特征(例如在第 1 层)。如果为 “never”,将始终丢弃原始数据特征。在第 1 层中将跳过。

    valid_stackerbool, 默认 True

    如果为 True,将被标记为有效,可作为 stacker 模型包含。如果为 False,将仅作为基本模型(第 1 层)进行训练,而不会在堆栈层(第 2 层及以上)进行训练。

    max_base_modelsint, 默认 0

    其预测构成此 stacker 模型输入特征的基本模型的最大数量。如果可用基本模型超过 max_base_models,则仅使用验证分数最高的 max_base_models 个模型。如果为 0,则跳过此逻辑。

    max_base_models_per_typeint | str, 默认 “auto”

    类似于 max_base_models。如果某种特定模型类型的可用模型超过 max_base_models_per_type,则仅使用该类型中排名前 max_base_models_per_type 的模型。这在 max_base_models 过滤之前发生。如果为 “auto”,则值将根据训练样本数量自适应设置。

    样本越多,值越大,从 <1000 个样本时的 1 开始,增加到 >=50000 个样本时的 12。

    如果为 0,则跳过此逻辑。

    num_folds: (int, default=None) 如果指定,bagged 模型中要拟合的 fold 数量。

    如果指定,则覆盖用于确定 fold 数量的任何其他值,例如 predictor.fit 的 num_bag_folds 参数。

    max_sets: (int, default=None) 如果指定,bagged 模型中要拟合的最大 sets 数量。

    将使用 max_sets 和 predictor.fit num_bag_sets 参数中较小的值用于给定模型。如果某个特定模型相对于其他模型开销较大,并且您希望避免重复对昂贵模型进行 bagging,同时仍重复对廉价模型进行 bagging,这会很有用。

    save_bag_folds: (bool, default=True)

    如果为 True,bagged 模型将保存其 fold 模型(bagging 的每个单独 fold 中的模型)。这是使用 bagged 模型进行预测所必需的。如果为 False,bagged 模型将不保存其 fold 模型。这意味着 bagged 模型在推理期间将不是有效模型。

    仅当计划调用 predictor.refit_full() 或设置了 refit_fullset_best_to_refit_full=True 时才应将其设置为 False。如果关注磁盘使用量,这尤其有用。通过不保存 fold 模型,bagged 模型在训练期间只会占用非常小的磁盘空间。在许多训练运行中,这将使峰值磁盘使用量减少 10 倍以上。

    fold_fitting_strategy: (AbstractFoldFittingStrategy default=auto) 是否并行或按顺序拟合 fold。

    如果为 parallel_local,fold 将在计算资源均匀分配的情况下并行训练。与 SequentialLocalFoldFittingStrategy 相比,这可以带来 2-4 倍的速度提升,但可能会消耗更多内存。如果为 sequential_local,fold 将按顺序训练。如果为 auto,策略将由操作系统和是否安装了 ray 来决定。MacOS 对 parallel_local 的支持不稳定,如果启用可能会崩溃。

    num_folds_parallel: (int 或 str, default=’auto’) 如果使用 ParallelLocalFoldFittingStrategy,并行训练的 fold 数量。如果在训练(使用 GPU)时遇到内存不足或 CUDA 内存不足问题,请考虑降低此值。

    如果为 ‘auto’,将尝试并行训练所有 fold。

  • feature_metadata (autogluon.tabular.FeatureMetadata 或 str, default = ‘infer’) – 特征预处理中各种内部逻辑使用的特征元数据。如果为 ‘infer’,将根据 train_data 的属性自动构建 FeatureMetadata 对象。在这种情况下,train_data 将输入到 autogluon.tabular.FeatureMetadata.from_df() 中以推断 feature_metadata。如果 ‘infer’ 错误地假定了特征的数据类型,请考虑显式指定 feature_metadata

  • infer_limit (float, default = None) – 训练期间每行推理时间的限制(以秒为单位)。如果 infer_limit=0.05 且 infer_limit_batch_size=1000,AutoGluon 将避免训练预测 1000 行需要超过 50 毫秒/行(必须在 50 秒内预测 1000 行)的模型。如果启用了 bagging,推理时间限制将基于调用 refit_full 后 _FULL 模型的估计推理速度,而不是基于 bagged 集成的推理速度。为模型计算的推理时间假定在 fit 后调用了 predictor.persist(‘all’)。如果为 None,则不强制执行限制。如果无法满足约束,将引发异常。

  • infer_limit_batch_size (int, default = None) – 在批量预测时用于估计每行推理时间的批量大小。必须是大于 0 的整数。如果为 None 且指定了 infer_limit,则默认为 10000。除非必须满足在线推理场景,否则建议设置为 10000。较小的值,特别是 infer_limit_batch_size=1,将导致每行推理时间大得多,应尽可能避免。有关其用法的详细信息,请参阅 infer_limit。如果在 infer_limit=None 时指定,则推理时间将在训练期间记录,但不会受到限制。

  • fit_weighted_ensemble (bool, default = True) – 如果为 True,则将在每个堆栈层训练一个 WeightedEnsembleModel。加权集成通常比单个模型更强大,同时训练速度非常快。建议将此值设置为 True 以最大化预测质量。

  • fit_full_last_level_weighted_ensemble (bool, default = True) – 如果为 True,则最后一个堆栈层的 WeightedEnsembleModel 将使用所有前一层中的所有(成功的)模型作为基本模型进行训练。如果禁用了 stacking,将其设置为 True 或 False 没有区别,因为 WeightedEnsembleModel L2 始终使用 L1 中的所有模型。建议将此值设置为 True 以最大化预测质量。

  • full_weighted_ensemble_additionally (bool, default = False) – 如果为 True,AutoGluon 将在训练完所有堆栈层后训练两个 WeightedEnsembleModel。将其设置为 True 模拟在调用 fit() 后调用 fit_weighted_ensemble()。如果 fit_full_last_level_weighted_ensemble 为 False 且禁用了 stacking,则不起作用。

  • dynamic_stacking (bool | str, default = False) – 如果为 True 且 num_stack_levels > 0,AutoGluon 将首先验证 AutoGluon 的堆栈行为,然后动态确定是否使用堆栈。这样做是为了避免所谓的堆栈过拟合,这种过拟合可能导致 AutoGluon 中使用的传统多层堆栈严重失败并产生不可靠的验证分数。在使用堆栈时,只要不确定数据是否受到堆栈过拟合的影响,建议将此值设置为 True 或 “auto”。如果已知数据不受堆栈过拟合的影响,则将此值设置为 False 可以最大化预测质量。如果启用,默认情况下,AutoGluon 通过花费提供的时间限制的 25% 用于检测,所有剩余时间用于拟合 AutoGluon 来执行动态堆栈。可以通过使用不同的参数指定 ds_args 来调整此设置到 fit()。如果为 “auto”,则将设置为 not use_bag_holdout。有关更多信息,请参阅 ds_args 的文档。

  • calibrate_decision_threshold (bool | str, default = "auto") – 如果为 True,将在训练结束时根据评估指标自动校准调用 .predict 的决策阈值。如果为 “auto”,则在 eval_metric.needs_class=Trueproblem_type=”binary” 时设置为 True。默认情况下,决策阈值为 0.5,但对于某些指标(如 f1balanced_accuracy),通过选择非 0.5 的阈值可以显著提高分数。仅对 problem_type=’binary’ 有效。对于所有其他问题类型,此项将被忽略。

  • num_cpus (int | str, default = "auto") – 您希望 AutoGluon 预测器使用的 CPU 总数量。Auto 意味着 AutoGluon 将根据可用的 CPU 总数量和模型的最佳性能需求做出决定。用户通常不需要设置此值。

  • num_gpus (int | str, default = "auto") – 您希望 AutoGluon 预测器使用的 GPU 总数量。Auto 意味着 AutoGluon 将根据可用的 GPU 总数量和模型的最佳性能需求做出决定。用户通常不需要设置此值。

  • fit_strategy (Literal["sequential", "parallel"], default = "sequential") –

    用于拟合模型的策略。如果为 “sequential”,模型将按顺序拟合。这是最稳定且日志最易读的选项。如果为 “parallel”,模型将使用 ray 并行拟合,并在它们之间分配可用计算资源。

    注意:“parallel” 是实验性的,可能会遇到问题。它首次在版本 1.2.0 中添加。

    对于具有 16 个或更多 CPU 核心的机器,很可能 “parallel” 会比 “sequential” 更快。

    在版本 1.2.0 中添加。

  • memory_limit (float | str, default = "auto") – 您希望 AutoGluon 预测器使用的总内存量(以 GB 为单位)。“auto” 意味着 AutoGluon 将使用系统上所有可用内存(可由 psutil 检测到)。请注意,这仅是一个软限制!AutoGluon 使用此限制来跳过预计需要过多内存的模型训练,或停止训练将超出内存限制的模型。AutoGluon (目前)不保证强制执行此限制。尽管如此,我们预计 AutoGluon 在大多数情况下将遵守此限制,或者至多略微超出限制。对于大多数虚拟化系统(例如云中)以及服务器或笔记本上的本地使用,“auto” 是此参数的理想选择。在由操作系统控制的共享资源系统(例如 SLURM 和 cgroups)上,我们建议手动设置内存限制(以及任何其他资源)。否则,AutoGluon 可能会错误地认为拟合模型的可用资源多于操作系统允许的资源,这可能导致模型训练失败或效率极低。

  • callbacks (list[AbstractCallback], default = None) –

    :::{warning} 回调是实验性功能,将来版本可能会在不发出警告的情况下更改。回调支持是初步的,面向开发者。 ::: 继承自 autogluon.core.callbacks.AbstractCallback 的回调对象列表。这些对象将在 trainer 中每个模型训练之前和之后调用。它们能够跳过模型或提前停止训练过程。理论上,它们还可以通过与传入的 trainer 对象交互来改变 trainer 代码的整个逻辑流程。有关更多详细信息,请参阅 AbstractCallback 源代码。如果为 None,则不会使用回调对象。

    [注意] 如果回调对象是有状态的,它们可能会在 fit 调用中被就地修改。请确保在多次 fit 调用之间避免重复使用已修改的回调对象。

    [注意] 回调对象在 fit 调用结束时从 trainer 中删除。它们不会影响 refit_fullfit_extra 等操作。

  • **kwargs

    auto_stackbool, 默认 = False

    AutoGluon 是否应该自动利用 bagging 和多层堆栈集成来提高预测精度。如果您愿意忍受更长的训练时间以最大化预测精度,请将此项设置为 True!根据数据集属性自动设置 num_bag_foldsnum_stack_levels 参数。注意:设置 num_bag_foldsnum_stack_levels 参数将覆盖 auto_stack。注意:这可以将训练时间(和推理时间)增加多达 20 倍,但可以极大地提高预测性能。

    num_bag_foldsint, 默认 = None

    用于模型 bagging 的 fold 数量。当 num_bag_folds = k 时,训练时间大致增加 k 倍(设置为 0 可禁用 bagging)。默认禁用 (0),但我们建议使用 5-10 之间的值以最大化预测性能。增加 num_bag_folds 将导致偏差较低但更容易过拟合的模型。num_bag_folds = 1 是无效值,将引发 ValueError。值 > 10 可能会产生边际收益递减,甚至由于过拟合而损害整体结果。为了进一步改进预测,应避免将 num_bag_folds 增加到远超 10,而是增加 num_bag_sets

    num_bag_setsint, 默认 = None

    执行 kfold bagging 的重复次数(值必须 >= 1)。Bagging 期间训练的总模型数量 = num_bag_folds * num_bag_sets。未指定时默认为 1。如果 num_bag_folds<=2,则忽略此值。大于 1 的值将带来卓越的预测性能,尤其是在较小问题和启用 stacking 的情况下(降低整体方差)。请注意:这将显着增加总运行时,如果在设置时间限制的情况下,通常会导致性能下降。建议仅作为最后手段增加此值,因为它是提高性能计算效率最低的方法。

    num_stack_levelsint, 默认 = None

    在堆栈集成中使用的堆栈层数量。模型训练时间大致增加 num_stack_levels+1 倍(设置为 0 可禁用堆栈集成)。默认禁用 (0),但我们建议 num_stack_levels=1 以最大化预测性能。为防止过拟合,还必须设置 num_bag_folds >= 2,否则将引发 ValueError。

    delay_bag_setsbool, 默认 = False

    控制 AutoGluon 在时间限制下何时执行 kfold bagging 的重复。我们建议保持 False 以避免过拟合。

    如果为 True,AutoGluon 会推迟重复 kfold bagging,直到评估完所有模型之后

    (来自 hyperparameters),如果时间足够的话。这使得 AutoGluon 可以探索更多超参数以获得更好的最终性能,但可能会导致更多的过拟合。

    如果为 False,AutoGluon 会在评估每个模型后立即重复 kfold bagging。

    因此,AutoGluon 可能会评估更少的模型,且过拟合程度较低。

    holdout_fracfloat, 默认 = None

    从 train_data 中留出作为调优数据以优化超参数的部分比例(除非 tuning_data = None,否则忽略;如果 num_bag_folds != 0 除非 use_bag_holdout == True,否则忽略)。默认值(如果为 None)根据训练数据中的行数选择。默认值范围从 2,500 行时的 0.2 到 250,000 行时的 0.01。如果设置了 hyperparameter_tune_kwargs,默认值加倍,最大为 0.2。如果 num_bag_folds >= 2 除非 use_bag_holdout == True,否则禁用。

    use_bag_holdoutbool | str, 默认 = False

    如果为 True,则从模型 bagging 中留出 holdout_frac 部分数据。此留出数据仅用于评估模型和确定加权集成权重。如果堆栈模型中 score_val 和 score_test 之间存在较大差距,请启用此选项。注意:如果指定了 tuning_data,则 tuning_data 用作留出数据。未进行 bagging 时禁用。如果为 “auto”,则在训练数据 >= 1000000 行时设置为 True,否则设置为 False。

    hyperparameter_tune_kwargsstr 或 dict, 默认 = None

    超参数调优策略和 kwargs(例如,运行多少次 HPO 试验)。如果为 None,则不执行超参数调优。您可以选择提供预设

    有效预设值

    ‘auto’:对 NN_TORCH 和 FASTAI 模型执行贝叶斯优化搜索进行 HPO,对其他模型使用本地调度器进行随机搜索。‘random’:使用本地调度器进行随机搜索进行 HPO。

    或者提供一个 dict 来指定搜索器和调度器
    有效键

    ‘num_trials’:运行多少次 HPO 试验 ‘scheduler’:使用哪个调度器

    有效值

    ‘local’:按 FIFO 调度试验的本地调度器

    ‘searcher’:使用哪个搜索算法

    ‘local_random’:使用 ‘random’ 搜索器 ‘random’:执行随机搜索 ‘auto’:对 NN_TORCH 和 FASTAI 模型执行贝叶斯优化搜索。对其他模型执行随机搜索。

    提供 dict 时,‘scheduler’ 和 ‘searcher’ 键是必需的。有效 dict 示例

    hyperparameter_tune_kwargs = {

    ‘num_trials’: 5, ‘scheduler’ : ‘local’, ‘searcher’: ‘auto’,

    }

    feature_prune_kwargs: dict, 默认 = None

    通过递归特征消除与排列特征重要性相结合的方式执行分层特征剪枝。这将首先对堆栈层中的所有模型进行一次拟合,发现一个剪枝后的特征集,然后再次使用剪枝后的特征集对堆栈层中的所有模型进行拟合,并更新验证分数提高的模型的输入特征列表。如果为 None,则不执行特征剪枝。如果为空字典,则使用默认配置执行特征剪枝。有关有效的字典键,请参阅 autogluon.core.utils.feature_selection.FeatureSelectorautogluon.core.trainer.abstract_trainer.AbstractTabularTrainer._proxy_model_feature_prune 文档。要强制所有模型使用剪枝后的特征集,请在字典中设置 force_prune=True。

    ag_argsdict, 默认 = None

    要传递给所有模型的关键字参数(即所有 AutoGluon 模型共享的通用超参数)。有关有效值,请参阅 hyperparameters 参数文档中“高级功能:自定义 AutoGluon 模型参数”部分的 ag_args 参数。这与在 hyperparameters 中为所有模型指定 ag_args 参数是等效的。如果 ag_args 中的某个键已在 hyperparameters 中为某个模型指定,则不会通过此参数进行更改。

    ag_args_fitdict, 默认 = None

    要传递给所有模型的关键字参数。有关有效值,请参阅 hyperparameters 参数文档中“高级功能:自定义 AutoGluon 模型参数”部分的 ag_args_fit 参数。这与在 hyperparameters 中为所有模型指定 ag_args_fit 参数是等效的。如果 ag_args_fit 中的某个键已在 hyperparameters 中为某个模型指定,则不会通过此参数进行更改。

    ag_args_ensembledict, 默认 = None

    要传递给所有模型的关键字参数。有关有效值,请参阅 hyperparameters 参数文档中“高级功能:自定义 AutoGluon 模型参数”部分的 ag_args_ensemble 参数。这与在 hyperparameters 中为所有模型指定 ag_args_ensemble 参数是等效的。如果 ag_args_ensemble 中的某个键已在 hyperparameters 中为某个模型指定,则不会通过此参数进行更改。

    ds_argsdict, 默认值见下文

    动态堆栈的关键字参数,仅在 dynamic_stacking=True 时使用。这些关键字参数控制动态堆栈的行为,并确定 AutoGluon 如何尝试检测堆栈过拟合。为了检测堆栈过拟合,AutoGluon 将在子集(用于留出)或多个子集(用于重复交叉验证)上拟合自身(所谓的 sub-fit),并使用 AutoGluon 在验证数据上的预测来检测堆栈过拟合。如果任何 sub-fit 显示堆栈过拟合,则 sub-fit 将停止并禁用 stacking。允许的键和值如下:

    detection_time_fracfloat,范围 (0,1),默认 = 1/4

    确定用于检测堆栈过拟合的原始训练时间比例。使用(重复)交叉验证时,每个 sub-fit 将训练时长为 1/n_splits * detection_time_frac * time_limit。如果未给 AutoGluon 设置时间限制,则忽略此参数,且 sub-fit 在没有时间限制的情况下进行拟合。

    validation_procedure: str, 默认 = ‘holdout’
    确定用于检测堆栈过拟合的验证过程。可以是 cvholdout

    如果 validation_procedure=’holdout’ 且未指定 holdout_data(默认),则 holdout_frac 决定留出数据。如果 validation_procedure=’holdout’ 且指定了 holdout_data,则提供的 holdout_data 用于验证。如果 validation_procedure=’cv’,则 n_foldsn_repeats 决定交叉验证过程的类型。

    holdout_fracfloat,范围 (0,1),默认 = 1/9

    决定在留出验证期间原始训练数据中有多少用于留出数据。如果 holdout_data 不是 None,则忽略此项。

    n_foldsint,范围 [2, +inf),默认 = 2

    用于交叉验证的 fold 数量。

    n_repeatsint,范围 [1, +inf),默认 = 1

    用于重复交叉验证的重复次数。如果设置为 1,则执行 1 次重复交叉验证,等同于无重复的交叉验证。

    memory_safe_fitsbool, 默认 = True

    如果为 True,AutoGluon 会在基于 ray 的子进程中运行每个 sub-fit,以避免因 Python 不足的垃圾收集器导致的内存泄漏。

    clean_up_fitsbool, 默认 = True

    如果为 True,AutoGluon 将从磁盘中删除 sub-fit 的所有已保存信息。如果为 False,sub-fit 将保留在磁盘上,self._sub_fits 将存储 sub-fit 的路径,可以使用 TabularPredictor.load() 像加载任何其他预测器一样加载它们。

    enable_ray_loggingbool, 默认 = True

    如果为 True,则在使用 ray 时 (memory_safe_fits=True) 将记录动态堆栈 sub-fit 的日志。请注意,由于 ray 的工作方式,这可能导致在动态堆栈完成后,主 fit 进程中出现额外的、不需要的日志记录。

    enable_callbacksbool, 默认 = False

    如果为 True,将对指定的用户回调进行深度复制,并在 DyStack 调用期间启用它们。如果为 False,则 DyStack 调用中不包含回调。

    holdout_data: str 或 pd.DataFrame, 默认 = None

    包含验证数据的另一个数据集,用于检测堆栈过拟合。此数据集应与 train_data 格式相同。如果传入 str,holdout_data 将使用 str 值作为文件路径加载。如果 holdout_data 不是 None,则 sub-fit 在所有 train_data 上拟合,而 full fit 在所有 train_dataholdout_data 组合上拟合。

    included_model_typeslist, 默认 = None

    fit() 期间仅包含列出的模型类型进行训练。列在 included_model_types 中但未在 hyperparameters 中的模型将被忽略。请参阅 hyperparameters 文档以了解每个值对应的模型。在只需要训练模型子集且 hyperparameters 字典难以或耗时更改时很有用。

    示例:要同时包含 ‘GBM’ 和 ‘FASTAI’ 模型,请指定 included_model_types=[‘GBM’, ‘FASTAI’]

    excluded_model_typeslist, 默认 = None

    fit() 期间避免训练的模型类型禁用子集,即使存在于 hyperparameters 中。请参阅 hyperparameters 文档以了解每个值对应的模型。在不希望使用特定模型类型(如 ‘KNN’ 或 ‘custom’)但更改 hyperparameters 字典困难或耗时时很有用。

    示例:要同时排除 ‘KNN’ 和 ‘custom’ 模型,请指定 excluded_model_types=[‘KNN’, ‘custom’]

    refit_fullbool 或 str, 默认 = False

    在正常训练过程后,是否在所有数据(训练 + 验证)上重新训练所有模型。这相当于在 fit 后调用 predictor.refit_full(model=refit_full)。如果 refit_full=True,则视为 refit_full=’all’。如果 refit_full=False,则不进行重新拟合。有效的 str 值

    all:重新拟合所有模型。best:仅重新拟合最佳模型(如果是 stacker 模型,还包括其祖先模型)。{model_name}:仅重新拟合指定的模型(如果是 stacker 模型,还包括其祖先模型)。

    对于 bagged 模型

    通过将 bagged 集成折叠为在所有训练数据上拟合的单个模型来减少模型的推理时间。此过程通常会导致精度略有下降,但推理速度大幅提升。推理速度通常比原始 bagged 集成模型快 10-200 倍。

    推理加速因子等于 (k * n),其中 k 是 bagged 集成中的 fold 数量 (num_bag_folds),n 是已完成重复的次数 (num_bag_sets)。

    运行时通常是原始 fit 运行时的 10% 或更少。

    运行时可以大致估计为原始 fit 运行时的 1 / (k * n),k 和 n 的定义如上。

    对于非 bagged 模型

    通过在 100% 的数据上重新训练(不使用验证集)来优化模型的精度。通常会导致精度略有提高,且推理时间不变。运行时将大致等于原始 fit 运行时。

    此过程不会改变原始模型,而是添加额外的模型。如果通过此过程重新拟合 stacker 模型,它们在推理期间将使用祖先模型的 refit_full 版本。此过程生成的模型将没有验证分数,因为它们使用所有数据进行训练。

    因此,用户需要通过在 predictor.leaderboard(test_data) 中包含测试数据来确定模型质量是否足够。如果用户没有额外的测试数据,则应参考原始模型的分数来估计 refit_full 模型的性能。

    警告:请注意,在不单独使用测试数据进行验证的情况下使用 refit_full 模型意味着模型未经测试,并且不能保证与原始模型一致。

    此过程花费的时间不受 time_limit 限制。

    save_bag_foldsbool, 默认 = True

    如果为 True,将 bagged fold 模型保存到磁盘。如果为 False,则不保存 bagged fold 模型,仅保留其元数据和 out-of-fold 预测。

    注意:bagged 模型将不可用于预测,仅当您打算调用 refit_full 时才使用此选项。将其设置为 False 的目的是在 bagging 期间显著降低 fit 调用时预测器的峰值磁盘使用量。请注意,当数据集相对于可用系统内存较大时,这会使 refit_full 稍微更容易崩溃。这是因为默认情况下,如果 refit_full 内存不足,将回退到克隆 bagged 模型的第一个 fold 进行重新拟合。但是,如果 save_bag_folds=False,则无法进行此回退,因为没有保存 fold 模型可供克隆。在这种情况下,如果 save_bag_folds=False,refit 将引发异常,但如果 save_bag_folds=True 则会成功。

    在 fit 后调用 predictor.delete_models(models_to_keep=”best”, dry_run=False) 后,预测器的最终磁盘使用量与此设置无关。

    set_best_to_refit_fullbool, 默认 = False

    如果为 True,当未指定模型时,Predictor 用于预测的默认模型将更改为显示最高验证分数的模型的 refit_full 版本。仅在设置了 refit_full 时有效。

    keep_only_bestbool, 默认 = False
    如果为 True,则仅将最佳模型及其祖先模型保存在输出的 predictor 中。所有其他模型都将被删除。

    如果您只关心部署具有最小文件大小且精度最高的预测器,并且不再需要任何其他训练模型或在新数据上进行预测之外的功能,则设置:keep_only_best=Truesave_space=True。这等同于在 fit() 后直接调用 predictor.delete_models(models_to_keep=’best’, dry_run=False)

    如果与 refit_fullset_best_to_refit_full 一起使用,则最佳模型将是 refit_full 模型,并且原始 bagged 最佳模型将被删除。

    在这种情况下,refit_full 将自动设置为 ‘best’,以避免训练随后将被删除的模型。

    save_spacebool, 默认 = False
    如果为 True,通过删除在新数据上预测不需要的辅助模型文件,减少预测器的内存和磁盘大小。

    这等同于在 fit() 后直接调用 predictor.save_space()

    这对推理精度没有影响。如果唯一的目标是使用训练好的模型进行预测,则推荐使用。如果 save_space=True,某些高级功能可能不再可用。有关更多详细信息,请参阅 predictor.save_space() 文档。

    feature_generatorautogluon.features.generators.AbstractFeatureGenerator, 默认 = autogluon.features.generators.AutoMLPipelineFeatureGenerator

    AutoGluon 用于处理输入数据并将其转换为发送给模型所需形式的特征生成器。这通常包括自动化特征生成和数据清理。除非处理高级用例,否则通常建议保留默认特征生成器。要控制默认特征生成过程的某些方面,您可以传入使用以下某些 kwargs 构造的 AutoMLPipelineFeatureGenerator 对象:

    enable_numeric_featuresbool, 默认 True

    是否保留 'int' 和 'float' 原始类型的特征。这些特征将不加更改地传递给模型。将 IdentityFeatureGenerator(infer_features_in_args=dict(valid_raw_types=[‘int’, ‘float’]))) 添加到生成器组。

    enable_categorical_featuresbool, default True

    是否保留 'object' 和 'category' 原始类型的特征。这些特征将被处理成内存优化的 'category' 特征。将 CategoryFeatureGenerator() 添加到生成器组。

    enable_datetime_featuresbool, default True

    是否保留 'datetime' 原始类型和被识别为 'datetime_as_object' 特征的 'object' 特征。这些特征将被转换为表示自 epoch 以来的毫秒数的 'int' 特征。将 DatetimeFeatureGenerator() 添加到生成器组。

    enable_text_special_featuresbool, default True

    是否使用被识别为 'text' 特征的 'object' 特征来生成 'text_special' 特征,例如词计数、大写字母比例和符号计数。将 TextSpecialFeatureGenerator() 添加到生成器组。

    enable_text_ngram_featuresbool, default True

    是否使用被识别为 'text' 特征的 'object' 特征来生成 'text_ngram' 特征。将 TextNgramFeatureGenerator(vectorizer=vectorizer) 添加到生成器组。

    enable_raw_text_featuresbool, default False

    是否保留原始文本特征。将 IdentityFeatureGenerator(infer_features_in_args=dict(required_special_types=[‘text’])) 添加到生成器组。

    vectorizerCountVectorizer, default CountVectorizer(min_df=30, ngram_range=(1, 3), max_features=10000, dtype=np.uint8)

    用于 TextNgramFeatureGenerator 的 sklearn CountVectorizer 对象。仅在 enable_text_ngram_features=True 时使用。

    unlabeled_datapd.DataFrame, default = None

    [实验性参数] 未使用。用于预训练的无标签数据集合。其 schema 与 train_data 相同,只是没有标签。当前,unlabeled_data 未被任何模型使用。

    verbosityint

    如果指定,将覆盖现有的 predictor.verbosity 值。

    raise_on_model_failure: bool, default = False
    如果为 True,则在模型训练期间发生任何异常时会抛出错误。

    这在使用调试器进行开发时很有用,可以找出模型失败的原因。这仅应在调试时使用。

    如果为 False,则如果在模型训练期间发生异常,将尝试跳到下一个模型。

    这是默认逻辑,也是 AutoGluon 设计的核心原则。

    在版本 1.3.0 中添加。

    raise_on_no_models_fitted: bool, default = True

    如果为 True,则在 fit() 期间没有模型成功拟合时会抛出 RuntimeError。

    calibrate: bool or str, default = ‘auto’

    注意:建议使用 ['auto', False] 作为值,避免使用 True。如果为 'auto',则在 problem_type 和 eval_metric 适合校准时会自动设置为 True。如果为 True 且 problem_type 为分类,将使用温度缩放(temperature scaling)来校准预测器的估计类别概率(这可能会改善 log_loss 等指标),并会在验证集上训练一个标量参数。如果为 True 且 problem_type 为分位数回归,将使用一致化(conformalization)来校准预测器的估计分位数(这可能会改善预测区间覆盖率,bagging 可以进一步改善),并会在验证集上计算一组标量参数。

    test_datastr or pd.DataFrame, default = None

    测试数据表。如果传入 str,test_data 将使用该字符串作为文件路径加载。注意:此 test_data 在训练期间绝不会被模型看到,如果指定,仅用于日志记录目的(例如,用于生成学习曲线)。此 test_data 应与 predictor.leaderboard 中使用测试数据的方式相同对待。

    learning_curvesbool or dict, default = None
    如果为 bool 且为 True,将为集成中包含的每个模型初始化默认的学习曲线超参数 ag_args。

    默认情况下,学习曲线将包含在 fit 调用参数中指定的 eval_metric 分数。这可以如下所示覆盖。

    如果为 dict,用户可以传入学习曲线参数,以便按以下格式初始化为 ag_args
    learning_curves = {
    “metrics”: str or list(str) or Scorer or list(Scorer)

    在每次迭代时计算的 autogluon 度量评分器,表示为 Scorer 对象或评分器名称(str)

    ”use_error”: bool : 是否对上述指标使用错误或分数格式

    }

返回类型:

TabularPredictor 对象。返回自身。

示例

>>> from autogluon.tabular import TabularDataset, TabularPredictor
>>> train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
>>> label = 'class'
>>> predictor = TabularPredictor(label=label).fit(train_data)
>>> test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
>>> leaderboard = predictor.leaderboard(test_data)
>>> y_test = test_data[label]
>>> test_data = test_data.drop(columns=[label])
>>> y_pred = predictor.predict(test_data)
>>> perf = predictor.evaluate_predictions(y_true=y_test, y_pred=y_pred)

为了最大化预测性能,请使用以下设置

>>> eval_metric = 'roc_auc'  # set this to the metric you ultimately care about
>>> time_limit = 3600  # set as long as you are willing to wait (in sec)
>>> predictor = TabularPredictor(label=label, eval_metric=eval_metric).fit(train_data, presets=['best_quality'], time_limit=time_limit)