common.title

Overview
Service overview
Terms of service

Privacy policy

Contact

Sign in
Sign up
common.title

量子とデータツールを広げるために、Auto Sklearnをつかってみた

Yuichiro Minato

2021/07/28 15:39

#AutoML #分類

Auto Sklearnをつかってみた

今更なのかもしれませんが、auto-sklearnを使ってみました。最近仕事でAutoMLを使う機会が増えてきたので、量子コンピュータに将来的に応用できるように学んでみます。 まずはインストールです。blueqat cloudにもpipで簡単に導入できました。

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

さっそく使ってみます

https://automl.github.io/auto-sklearn/master/
こちらに使い方が載っていました。チュートリアルをやってみたいと思います。
参考となるサイトもいろいろありました。

参考:Auto-sklearn2.0試してみた https://qiita.com/dyamaguc/items/b7b8e8b0c952a53c31ab

参考:scikit-learnのサンプルデータセットの一覧と使い方 https://note.nkmk.me/python-sklearn-datasets-load-fetch/

今回は分類問題として手書きの数字を使ってみました。まずはツール読み込みです。

import autosklearn.classification import sklearn.model_selection import sklearn.datasets import sklearn.metrics

手書き文字の分類を学習させて、予測をします。精度を出してみます。

%%time #データ読み込み 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) #時間が長いと困るので、実行を30秒にしました automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=30, seed=1) #学習 automl.fit(X_train, y_train) #予測 y_hat = automl.predict(X_test) #精度 print("Accuracy score", sklearn.metrics.accuracy_score(y_test, y_hat))
Accuracy score 0.9866666666666667

CPU times: user 1.39 s, sys: 301 ms, total: 1.69 s

Wall time: 26.1 s

結果として精度98.6...となりました。AutoMLでは実行時間を30秒よりも短くできませんでしたので、最短の30秒としましたが十分でしたね。CPU timesはtotalで1.69sとなっています。

AutoMLの中身がよくわからなかったのですが、こちらに簡単なものがありました。
https://github.com/automl/auto-sklearn

./img/askl_pipeline.png

メタ学習、データ前処理、特徴量前処理、分類計算、そしてパラメータ類をベイズ最適を使って、最後にアンサンブルを作っている感じですね。量子ばかりやっていてデータサイエンスの細かい用語や仕組みが分かりませんが、そのまま量子にも活用できそうな気がします。

論文の性能を図った図を見つけました。 https://www.semanticscholar.org/paper/Efficient-and-Robust-Automated-Machine-Learning-Feurer-Klein/775a4e375cc79b53b94e37fa3eedff481823e4a6

複数のアルゴリズムを比較しているのが見て取れます。

Auto Sklearn2.0も使いたかったのですが結構エラーが出ました。今回は普通のAuto Sklearnを使いましたが便利ですね。仕事につかえそうです。以上です。

© 2024, blueqat Inc. All rights reserved