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