auto-sklearn手册

手册

本手册从几个方面说明了如何使用auto-sklearn。并且 尽可能引用的例子来解释某些配置。官网首页.官网中文翻译

例子

auto-sklearn 下面的例子演示几个 方面的用法,他们都位于github:

时间和内存限制

auto-sklearn 的一个重要功能时限制内存与时间的使用。特别是对于大型数据集,算法可能要花费花几个小时进行计算,因此如何在一段时间后停止并进行评估是极其重要的,因为这是在合理的时间内取得进展的重要手段.因而资源限制则必须做到时间与模型数量之间的权衡.

虽然auto-sklearn减轻了手动超参数优化,但是用户自己仍然需要设置内存与时间限制.对与大多数数据集而言,主流现代计算机上的能够提供的内存上限一般是3GB或者6GB,这绝对足够auto-sklearn使用了。而对于时间设置,这里很难给出明确的指导方针,如果可能的话,一个好的默认值一般是一天的总时间限制,而一次运行的时间限制最好为30分钟.

可以在进一步的指导方针 auto-sklearn /问题/ 142

设置 Searchspace

设置 auto-sklearn searchspac,而非使用所有可用的内容。 下面的示例展示了如何只使用随机森林算法以及不适用数据的预处理算法。

    >>> import autosklearn.classification
    >>> automl = autosklearn.classification.AutoSklearnClassifier(
    >>> include_estimators=["random_forest", ], exclude_estimators=None,
    >>> include_preprocessors=["no_preprocessing", ], exclude_preprocessors=None)
    >>> automl.fit(X_train, y_train)
    >>> predictions = automl.predict(X_test)

注意: 用于识别算法与与处理算法的字符串后面不能跟着 ‘.py’。

对于一个完整列表请查看源代码( autosklearn /管道/组件/ ):

设置内存限制

ml_memory_limit(int)可选:

设置结果后会限制机器学习算法所使用的内存,单位为MB.当算法的内存使用超过该数字时,该算法将会被停止.*不过,一般内存消耗不大,不建议使用该选项),按照官网的建议,一般3GB或者6GB的主流个人计算机已经足够autosklearn使用了,所以一般不需要设置该函数.

关掉预处理

预处理在 auto-sklearn中共 分为数据预处理和 特征预处理功能两个功能。 数据预处理包括一个对分类特征的独热编码,对缺失值的处理,以及对特征和样本的归一化处理,这些步骤目前是无法关闭的.特征预处理则是一个单一的transformer(sklearn中对特征处理算法的称呼与机器学习算法 估计器estimator相对应),其实现了特征选择与将特征转换到不同空间(PCA).如前面的代码所示,这可以通过 include_preprocessors=[“no_preprocessing”, ]来关闭.

重采样策略

可以找到例子使用维持和交叉验证 auto-sklearn /example

并行计算

自动sklearn支持在共享文件系统上共享数据共享并行执行。在这种模式下,SMAC算法通过每次迭代后将其写入磁盘,共享其模型的训练数据。在每次迭代开始时,SMAC都会加载所有新发现的数据点。在示例目录中可以找到一个示例。

在默认模式下,自动sklearn已经使用了两个CPU核心。第一个用于模型构建,第二个用于构建一个集成,每次一个新的机器学习模型已经完成培训。示例目录中的文件example_UNK.py 描述了如何在每次只使用一个CPU内核的情况下按顺序运行这些任务。

此外,根据安装scikit-learn numpy, 模型建立过程可以使用所有的核心。 这样的行为并不是 auto-sklearn 故意设计的 ,它最有可能是由于numpy被安装 从 pypi 作为一个二进制的轮子( 在这里看到的 )(上面这句话,我也看不太懂)。 执行 export OPENBLAS_NUM_THREADS = 1 应该能够禁用这种行为并使numpy 一次只使用一个核心。

持久化模型 (模型的保存与加载)

auto-sklearn 主要是对scikit-learn的封装。 因此,它可以遵循scikit-learn中的 持久性的例子

简单的auto-sklearn

为了获得 符合 高效和健壮的自动化机器学习 的 简单有效的 auto-sklearn 可以设置 ensemble_size = 1initial_configurations_via_metalearning = 0:

    >>> import autosklearn.classification
    >>> automl = autosklearn.classification.AutoSklearnClassifier(
    >>> ensemble_size=1, initial_configurations_via_metalearning=0)

根据一般验证集的表现,很多算法的集合总能得到当前数据集的最佳性能。将元学习的初始配置设置为零,使得自动sklearn使用常规的SMAC算法来表示新的超参数配置。

### 关于 ML311 的技术文档或实现方法 目前,在提供的引用内容中并未直接提及名为 **ML311** 的具体技术文档或实现方法。然而,可以通过分析现有引用中的相关内容来推测可能的技术方向。 #### 自动化机器学习 (AutoML) 工具的应用 如果假设 **ML311** 是指某种自动化机器学习流程或者工具链的一部分,则可以参考 Auto-Sklearn 2.0 的论文[^1]。该论文讨论了一种基于 Scikit-Learn 的自动机器学习框架,能够通过贝叶斯优化、元学习和其他技术手段自动生成高性能的机器学习流水线。以下是其核心功能: - 使用超参数调优和模型选择机制提升性能。 - 支持多种分类器、回归器以及预处理组件的选择与组合。 ```python from autosklearn.classification import AutoSklearnClassifier import sklearn.datasets import sklearn.model_selection X, y = sklearn.datasets.load_digits(return_X_y=True) X_train, X_test, y_train, y_test = \ sklearn.model_selection.train_test_split(X, y, random_state=1) automl = AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=30, tmp_folder='/tmp/autosklearn_classification_example_tmp', output_folder='/tmp/autosklearn_classification_example_out') automl.fit(X_train, y_train) print(automl.show_models()) predictions = automl.predict(X_test) ``` 上述代码展示了如何利用 Auto-Sklearn 进行快速建模并评估预测效果。 --- #### Azure Machine Learning 平台的功能支持 对于企业级应用开发场景下的 **ML311** 可能涉及云端部署需求,此时可考虑 Microsoft 提供的 Azure Machine Learning Studio[^2]。它允许用户轻松上传数据集、训练模型并通过 REST API 部署服务端点。主要特点如下: - 数据管理:支持 CSV 文件及其他格式的数据导入操作; - 流程设计:图形界面拖拽节点构建复杂工作流图; - 扩展能力:无缝对接 Databricks 和 Kubernetes 等计算资源调度平台; 尽管未明确指出 ML311 是否特指某项特定功能模块,但从描述来看,Azure ML 能够满足大部分现代 MLOps 场景的需求。 --- #### 常见挑战及解决方案概述 最后提到关于手动编码算法效率低下问题[^3],这表明无论何种具体的项目代号背后隐藏的实际意义为何,“减少重复劳动”始终是推动技术创新的重要驱动力之一。因此建议进一步查阅官方手册确认确切含义之前先尝试理解这些通用原则背后的逻辑关系。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值