API

主要模块

分类

class autoPyTorch.api.tabular_classification.TabularClassificationTask(seed: int = 1, n_jobs: int = 1, logging_config: Optional[Dict] = None, ensemble_size: int = 50, ensemble_nbest: int = 50, max_models_on_disc: int = 50, temporary_directory: Optional[str] = None, output_directory: Optional[str] = None, delete_tmp_folder_after_terminate: bool = True, delete_output_folder_after_terminate: bool = True, include_components: Optional[Dict] = None, exclude_components: Optional[Dict] = None, resampling_strategy: Union[autoPyTorch.datasets.resampling_strategy.CrossValTypes, autoPyTorch.datasets.resampling_strategy.HoldoutValTypes] = <HoldoutValTypes.holdout_validation: 6>, resampling_strategy_args: Optional[Dict[str, Any]] = None, backend: Optional[autoPyTorch.utils.backend.Backend] = None, search_space_updates: Optional[autoPyTorch.utils.hyperparameter_search_space_update.HyperparameterSearchSpaceUpdates] = None)[source]

表格分类 API,用于访问管道。 参数

seed (int)

用于可重复性的种子。

n_jobs (int), (default=1)

要生成的连续进程数。

logging_config (Optional[Dict])

指定日志配置,如果为 None,则从 logging.yaml 加载

ensemble_size (int), (default=50)

添加到通过集成选择从模型库构建的集成中的模型数量。模型是带放回抽取的。

ensemble_nbest (int), (default=50)

只考虑 ensemble_nbest 个模型来构建集成

max_models_on_disc (int), (default=50)

保存到磁盘的最大模型数量。此外,它还控制集成的大小,因为任何额外的模型都将被删除。必须大于或等于 1。

temporary_directory (str)

用于存储配置输出和日志文件的文件夹

output_directory (str)

用于存储可选测试集预测结果的文件夹

delete_tmp_folder_after_terminate (bool)

确定完成后是否删除临时目录

include_components (Optional[Dict])

如果为 None,则使用所有可能的组件。否则指定要使用的组件集。

exclude_components (Optional[Dict])

如果为 None,则使用所有可能的组件。否则指定不使用的组件集。与 include components 不兼容

build_pipeline(dataset_properties: Dict[str, Any])autoPyTorch.pipeline.tabular_classification.TabularClassificationPipeline[source]

根据当前任务和传入的数据集属性构建管道 参数

dataset_properties (Dict[str,Any])

返回

fit(dataset: autoPyTorch.datasets.base_dataset.BaseDataset, budget_config: Dict[str, Union[int, str]] = {}, pipeline_config: Optional[ConfigSpace.configuration_space.Configuration] = None, split_id: int = 0)autoPyTorch.pipeline.base_pipeline.BasePipeline

在给定任务上根据预算拟合管道。可以指定管道配置,如果为 None,则使用默认配置 参数

dataset: (Dataset)

提供数据集分割的参数。它可以是一个包含分割的字典,或一个可以根据不同限制生成分割的数据集对象。

budget_config: (Optional[Dict[str, Union[int, str]]])

可以包含来自 ‘budget_type’ 的键以及使用 ‘epochs’ 或 ‘runtime’ 指定的预算。

split_id: (int) (default=0)

要拟合的分割 ID。

pipeline_config: (Optional[Configuration])

用于拟合管道的配置。如果为 None,则使用默认配置

返回

(BasePipeline): 已拟合的管道

get_pipeline_options()dict

返回当前的管道配置。

get_search_space(dataset: Optional[autoPyTorch.datasets.base_dataset.BaseDataset] = None)ConfigSpace.configuration_space.ConfigurationSpace

将当前的搜索空间作为 ConfigurationSpace 对象返回。

predict(X_test: numpy.ndarray, batch_size: Optional[int] = None, n_jobs: int = 1)numpy.ndarray[source]

生成估计器预测结果。根据测试集中的给定示例生成预测结果。 参数: X_test: (np.ndarray)

测试集示例。

返回

包含估计器预测结果的数组。

refit(dataset: autoPyTorch.datasets.base_dataset.BaseDataset, budget_config: Dict[str, Union[int, str]] = {}, split_id: int = 0)autoPyTorch.api.base_task.BaseTask

使用新数据重新拟合通过 fit 找到的所有模型。

使用交叉验证时需要。在训练期间,autoPyTorch 在数据集上拟合每个模型 k 次,但不保留任何已训练模型,因此无法用于对新数据点进行预测。此方法使用给定的数据拟合在调用 fit 期间找到的所有模型。此方法也可以与 holdout 一起使用,以避免只使用 66% 的训练数据来拟合最终模型。 参数

dataset: (Dataset)

提供数据集分割的参数。它可以是一个包含分割的字典,或一个可以根据不同限制生成分割的数据集对象。

budget_config: (Optional[Dict[str, Union[int, str]]])

可以包含来自 ‘budget_type’ 的键以及使用 ‘epochs’ 或 ‘runtime’ 指定的预算。

split_id: (int)

要拟合的分割 ID。

返回

self

score(y_pred: numpy.ndarray, y_test: Union[numpy.ndarray, pandas.core.frame.DataFrame])Dict[str, float]

计算测试集上的得分。计算测试集上的评估指标。 参数: y_pred: (np.ndarray)

测试预测结果

y_test: (np.ndarray)

测试真实标签。

返回

Dict[str, float]: 在测试集上计算的评估指标值。

search(optimize_metric: str, X_train: Optional[Union[List, pandas.core.frame.DataFrame, numpy.ndarray]] = None, y_train: Optional[Union[List, pandas.core.frame.DataFrame, numpy.ndarray]] = None, X_test: Optional[Union[List, pandas.core.frame.DataFrame, numpy.ndarray]] = None, y_test: Optional[Union[List, pandas.core.frame.DataFrame, numpy.ndarray]] = None, dataset_name: Optional[str] = None, budget_type: Optional[str] = None, budget: Optional[float] = None, total_walltime_limit: int = 100, func_eval_time_limit_secs: Optional[int] = None, enable_traditional_pipeline: bool = True, memory_limit: Optional[int] = 4096, smac_scenario_args: Optional[Dict[str, Any]] = None, get_smac_object_callback: Optional[Callable] = None, all_supported_metrics: bool = True, precision: int = 32, disable_file_output: List = [], load_models: bool = True)autoPyTorch.api.base_task.BaseTask[source]

搜索给定数据集的最佳管道配置。

拟合既优化机器学习模型,又从中构建集成。要禁用集成,请设置 ensemble_size==0。使用优化器。 参数

X_train, y_train, X_test, y_test: Union[np.ndarray, List, pd.DataFrame]

用于拟合管道的一对特征 (X_train) 和目标 (y_train)。此外,可以提供这对数据的一个保留集 (X_test, y_test) 来跟踪每个阶段的泛化性能。

optimize_metric (str): 用于

评估管道的指标名称。

budget_type (Optional[str])

拟合管道时使用的预算类型。可以是 ‘epochs’ 或 ‘runtime’。如果未提供,则使用管道配置中的默认值 (‘epochs’)

budget (Optional[float])

拟合管道单次运行的预算。如果未提供,则使用管道配置中的默认值

total_walltime_limit (int), (default=100): 时间限制

用于搜索合适模型(以秒为单位)。通过增加此值,autopytorch 有更大机会找到更好的模型。

func_eval_time_limit_secs (int), (default=None): 时间限制

用于单次调用机器学习模型。如果机器学习算法运行超出时间限制,模型拟合将被终止。将此值设置得足够高,以便典型的机器学习算法可以在训练数据上进行拟合。当设置为 None 时,此时间将自动设置为 total_walltime_limit // 2,以便有足够时间拟合至少 2 个独立的机器学习算法。如果不需要时间限制,则设置为 np.inf。

enable_traditional_pipeline (bool), (default=True)

在构建 PyTorch 神经网络之前,我们拟合传统的机器学习算法(LightGBM、CatBoost、RandomForest、ExtraTrees、KNN、SVM)。将此标志设置为 False 可以禁用此功能。在 search() 期间拟合的所有机器学习算法都将被考虑用于集成构建。

memory_limit (Optional[int]), (default=4096): 内存

机器学习算法的内存限制(以 MB 为单位)。如果机器学习算法尝试分配超过 memory_limit MB 的内存,autopytorch 将停止拟合。如果提供 None,则不设置内存限制。在多进程情况下,memory_limit 将是每个作业的限制。此内存限制也适用于集成创建过程。

smac_scenario_args (Optional[Dict]): 插入的额外参数

到 SMAC 的场景中。参见 [SMAC 文档] (https://automl.net.cn/SMAC3/master/options.html?highlight=scenario#scenario)

get_smac_object_callback (Optional[Callable]): 回调函数

用于创建一个 [smac.optimizer.smbo.SMBO](https://automl.net.cn/SMAC3/master/apidoc/smac.optimizer.smbo.html) 类的对象。该函数必须接受参数 scenario_dict、instances、num_params、runhistory、seed 和 ta。这是一个高级功能。只有在熟悉 [SMAC](https://automl.net.cn/SMAC3/master/index.html) 的情况下才使用。

all_supported_metrics (bool), (default=True): 如果为 True,所有

支持当前任务的指标将为每个管道计算,并且结果将通过 cv_results 可用。

precision (int), (default=32): 加载时使用的数字精度

集成数据。可以是 ‘16’、‘32’ 或 ‘64’。

disable_file_output (Union[bool, List]): load_models (bool), (default=True): 是否加载

拟合 AutoPyTorch 后得到的模型。

返回

self

set_pipeline_config(**pipeline_config_kwargs: Any)None

检查参数是否有效,然后将其设置为当前的管道配置。 参数

**pipeline_config_kwargs: 有效的配置选项包括 “num_run”、“device”、“budget_type”、“epochs”、“runtime”、“torch_num_threads”、“early_stopping”、“use_tensorboard_logger”、“metrics_during_training”

返回

None