AutoML 之 Auto-sklearn
0AutoML 定义
首先我们来为自动机器学习 AutoML 下一个定义,
定义1 自动机器学习 AutoML
: 对于 ,令 表示特征向量, 表示对应的目标值。给定训练数据集
和从与之具有相同数据分布中得出的测试数据集
的特征向量 ,以及资源预算 和损失度量 ,AutoML 问题是自动生成测试集的预测值 ,而 给出了 AutoML 问题的解 的损失值。
使用过 sklearn 的话,对于上面定义应该不难理解。下面再结合一个流程图来进一步理解一下。
Auto-sklearn 改进了一般的 AutoML 方法。自动机器学习框架采用贝叶斯超参数优化方法,这里另外添加了两个组件: 一个用于初始化贝叶斯优化器的元学习(meta-learning
)以及优化过程中的自动集成(automated ensemble)方法。
这种元学习方法是贝叶斯优化的补充,用于优化 ML 框架。对于像整个 ML 框架一样大的超参数空间,贝叶斯优化的启动速度很慢。通过基于元学习选择若干个配置来用于种子贝叶斯优化。这种通过元学习的方法可以称为热启动优化方法。再配合多个模型的自动集成方法,使得整个机器学习流程高度自动化,将大大节省用户的时间。从这个流程来看,让机器学习使用者可以有更多的时间来选择数据以及思考要处理的问题本身。
1Auto-sklearn
1Auto-sklearn 简介
Auto-sklearn
提供了开箱即用的监督型自动机器学习。从名字可以看出,auto-sklearn
是基于机器学习库 scikit-learn
构建的,可为新的数据集自动搜索学习算法,并优化其超参数。因此,它将机器学习使用者从繁琐的任务中解放出来,使其有更多时间专注于实际问题。当前版本为 0.6.0
,具体信息请查看官网 https://automl.github.io/auto-sklearn/master/
。不管官方介绍怎么写,还是实际拿出来溜溜看看效果。
2安 装
下面展示的是 ubuntu
下的安装步骤,其他操作系统请参考官方网页说明 https://automl.github.io/auto-sklearn/master/installation.html
。
- sudo apt-get install build-essential swig
- conda install gxx_linux-64 gcc_linux-64 swig
- curl
https://raw.githubusercontent.com/automl/auto-sklearn/master/requirements.txt
| xargs -n 1 -L 1 pip install - pip install auto-sklearn
3上 手
下面我们来牛刀小试,从回归和分类两个问题来看一下实际使用效果。
2回归问题
以下示例展示了如何使用 Auto-sklearn
来拟合简单的回归模型。
import sklearn.model_selection
import sklearn.datasets
import sklearn.metrics
from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestClassifier
import autosklearn.regression
def main():