TabularPredictor.refit_full

TabularPredictor.refit_full(model: str | list[str] = 'all', set_best_to_refit_full: bool = True, train_data_extra: DataFrame = None, num_cpus: int | str = 'auto', num_gpus: int | str = 'auto', fit_strategy: Literal['auto', 'sequential', 'parallel'] = 'auto', **kwargs) dict[str, str][source]

在所有数据(训练数据 + 验证数据)上重新训练模型。对于 bagged 模型

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

推理速度提升因子相当于 (k * n),其中 k 是 bagged 集成模型中的折数 (num_bag_folds),n 是已完成的重复次数 (num_bag_sets)。

运行时通常是原始拟合运行时间的 10% 或更少。

运行时间可以粗略估计为原始拟合运行时间的 1 / (k * n),其中 k 和 n 的定义如上。

对于非 bagged 模型

通过在 100% 的数据上重新训练而不使用验证集,来优化模型的准确度。通常会导致准确度略有提升,推理时间没有变化。运行时间将近似等于原始拟合运行时间。

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

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

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

在原始训练期间必须将 cache_data 设置为 True 才能启用此功能。

参数:
  • model (str | list[str], 默认 = 'all') –

    要重新拟合的模型名称。

    如果为 'all',则重新拟合所有模型。如果为 'best',则重新拟合验证分数最高的模型。

    如果选择的模型是加权或堆叠集成模型,则所有祖先模型也将被重新拟合。有效模型可通过调用 predictor.model_names() 在此 predictor 中列出。

  • set_best_to_refit_full (bool | str, 默认 = True) – 如果为 True,则将最佳模型设置为之前最佳模型的 refit_full 版本。这意味着调用 predictor.predict(data) 时使用的模型将是 refit_full 版本,而不是模型的原始版本。如果 model 不是最佳模型,则忽略此参数。如果为 str,则解释为模型名称,并将最佳模型设置为 set_best_to_refit_full 指定模型的 refit_full 版本。

  • train_data_extra (pd.DataFrame, 默认 = None) – 如果指定,在重新拟合模型时将用作额外的训练数据行。需要包含标签列。仅用于 L1 模型。

  • num_cpus (int | str, 默认 = "auto") – AutoGluon predictor 希望使用的 CPU 总数。Auto 表示 AutoGluon 将根据可用的 CPU 总数和模型要求做出最佳性能的决定。用户通常无需设置此值

  • num_gpus (int | str, 默认 = "auto") – AutoGluon predictor 希望使用的 GPU 总数。Auto 表示 AutoGluon 将根据可用的 GPU 总数和模型要求做出最佳性能的决定。用户通常无需设置此值

  • fit_strategy (Literal["auto", "sequential", "parallel"], 默认 = "auto") –

    用于拟合模型的策略。如果为 "auto",则使用与原始 TabularPredictor.fit() 调用中使用的 fit_strategy 相同。如果为 "sequential",模型将顺序拟合。这是最稳定的选项,日志最易读。如果为 "parallel",模型将使用 Ray 并行拟合,并在它们之间分配可用的计算资源。

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

    对于拥有 16 个或更多 CPU 核的机器,"parallel" 可能比 "sequential" 更快。

    添加于版本 1.2.0。

  • **kwargs – [高级] 开发者调试参数。

返回类型:

原始模型名称 -> refit_full 模型名称的字典。