1. 环境搭建

这是官方文档给出的​​安装教程​​,如下图所示,是你所要安装的系统需要满足的条件

AutoML-auto-sklearn_auto-sklearn


我所使用的环境为:

  • Ubuntu 16.04 64bit
  • Python 3.5.2

1.2 安装步骤

1.2.1 安装依赖

curl https://raw.githubusercontent.com/automl/auto-sklearn/master/requirements.txt | xargs -n 1 -L 1 pip install

如果没有安装curl会提示报错,下面是安装curl的命令

sudo apt-get install curl

1.2.2 安装auto-sklearn

pip install auto-sklearn

1.2.3 提供c++ 11构建环境和最新SWIG版本

sudo apt-get install build-essential swig

至此,环境就搭建完成了;下面我们来测试一下;

1.3 测试

1.3.1 官网示例

官网的​​测试示例​​,代码如下:

import autosklearn.classification
import sklearn.model_selection
import sklearn.datasets
import sklearn.metrics
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 = autosklearn.classification.AutoSklearnClassifier()
automl.fit(X_train, y_train)
y_hat = automl.predict(X_test)
print("Accuracy score", sklearn.metrics.accuracy_score(y_test, y_hat))

官网上说测试的精度会达到0.98,下面是我的实验结果,0.9866666666666667

AutoML-auto-sklearn_auto-sklearn_02

1.3.2 kaggle数字识别

Kaggle官网上有一个Digital Recognition,上面提供了训练集和没有标签的测试集,我们利用auto-sklearn构建模型并且对训练集进行训练后,对测试集进行预测得到一个预测结果后提交到Kaggle上进行比较;代码如下:

import pandas as pd
import autosklearn.classification
train = pd.read_csv('train.csv')
X_train = train.iloc[:, 1:]
y_train = train.iloc[:, :1]
cls = autosklearn.classification.AutoSklearnClassifier()
cls.fit(X_train, y_train)
X_test = pd.read_csv('test.csv')
predictions = cls.predict(X_test)

下面是我的提交,精度为0.96342

AutoML-auto-sklearn_环境搭建_03


再附上最后的排名

AutoML-auto-sklearn_环境搭建_04


最后的精度还是很高的,最重要的是我们仅仅只需要几行的代码,无论是模型的选择还是创建,训练,优化都不需要我们做,确实强大;