2021/02/25更新済
経緯:
はじめに
普段、Google Colaboratory(Colaboratory)^Google Colaboratoryを利用しているのですが、Colaboratory上でAutoMLであるAutoGluon1[^AutoML のための機械学習 フレームワーク AutoGluon のご紹介]をinstall & importして使ってみようと思ったことがありました。しかし、解決までに地味につまずくことがありました。似たような経験をしてせっかくのAutoMLの体験を断念する人もいるかと思い、この記事を書きました。慣れていない人でも再現できるよう手順をなるべく丁寧に書きます。(2021年1月20日の情報です。状況が変わった場合、コメントなどで教えていただけると助かります。)
結論
GitHubで公開されているREADME2に記載されている情報を参考に、下記のコマンドを実行します。
!pip install --upgrade pip
!pip install --upgrade setuptools
!pip install --upgrade "mxnet<2.0.0"
!pip install --pre autogluon
不穏な実行結果が表示されます。左下の「RESTART RUNTIME」を押し、ランタイムを再起動します。
「はい」を押します。
すると、以下のようなimport文が実行できるようになります。
from autogluon.tabular import TabularDataset, TabularPredictor
もちろん、READMEに記載されているサンプルコードも実行できます。
train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
predictor = TabularPredictor(label='class').fit(train_data, time_limit=60) # Fit models for 60s
leaderboard = predictor.leaderboard(test_data)
とても興味深い実行結果が見られますね!
(省略)
Fitting model: WeightedEnsemble_L1 ... Training model for up to 59.61s of the -10.88s of remaining time.
0.8848 = Validation accuracy score
1.07s = Training runtime
0.01s = Validation runtime
AutoGluon training complete, total runtime = 72.03s ...
TabularPredictor saved. To load, use: TabularPredictor.load("AutogluonModels/ag-20210118_155144/")
model score_test score_val pred_time_test pred_time_val fit_time pred_time_test_marginal pred_time_val_marginal fit_time_marginal stack_level can_infer fit_order
0 WeightedEnsemble_L1 0.873989 0.8848 1.739362 0.587412 29.211715 0.025570 0.005142 1.072552 1 True 10
1 LightGBM 0.873375 0.8800 0.101678 0.042709 1.115279 0.101678 0.042709 1.115279 0 True 7
2 CatBoost 0.872761 0.8804 0.032807 0.020380 14.926486 0.032807 0.020380 14.926486 0 True 9
3 LightGBMXT 0.870202 0.8756 0.245106 0.078389 1.704540 0.245106 0.078389 1.704540 0 True 8
4 RandomForestGini 0.859863 0.8600 0.821455 0.215100 9.762229 0.821455 0.215100 9.762229 0 True 1
5 RandomForestEntr 0.858225 0.8612 0.805670 0.315070 12.275200 0.805670 0.315070 12.275200 0 True 2
6 ExtraTreesGini 0.845839 0.8468 1.188539 0.315290 9.466483 1.188539 0.315290 9.466483 0 True 3
7 ExtraTreesEntr 0.845737 0.8432 1.195231 0.316842 8.752100 1.195231 0.316842 8.752100 0 True 4
8 KNeighborsUnif 0.773365 0.7752 0.108888 0.116532 0.319212 0.108888 0.116532 0.319212 0 True 5
9 KNeighborsDist 0.762514 0.7660 0.403860 0.109161 0.311418 0.403860 0.109161 0.311418 0 True 6
まとめ
ColaboratoryでAutoGluonをinstall & importする方法を紹介しました。AutoGluonをはじめとするAutoMLをどんどん体験していきましょう!
おまけ
---> 32 from dask.utils import ensure_dict, format_bytes, funcname, stringify
ImportError: cannot import name 'stringify'
個人的にこのエラー文とエンカウントすることが多かったです。そんな人に届いてほしいので書いておきました。(検索でひっかかれ!)
-
https://auto.gluon.ai/
[^AutoML のための機械学習 フレームワーク AutoGluon のご紹介]: https://pages.awscloud.com/rs/112-TZM-766/images/1.AWS_AutoML_AutoGluon.pdf ↩