Google ColaboratoryでAutoGluonをinstall & importする方法

2021/02/25更新済
経緯：

https://qiita.com/daikikatsuragawa/items/45dfb0bf627ed0e3fb74

# はじめに

普段、Google Colaboratory（Colaboratory）[^Google Colaboratory]を利用しているのですが、Colaboratory上でAutoMLであるAutoGluon[^AutoGluon][^AutoML のための機械学習 フレームワーク AutoGluon のご紹介]をinstall & importして使ってみようと思ったことがありました。しかし、解決までに地味につまずくことがありました。似たような経験をしてせっかくのAutoMLの体験を断念する人もいるかと思い、この記事を書きました。慣れていない人でも再現できるよう手順をなるべく丁寧に書きます。（2021年1月20日の情報です。状況が変わった場合、コメントなどで教えていただけると助かります。）

[^Google Colaboratory]: https://colab.research.google.com/notebooks/welcome.ipynb
[^AutoGluon]: https://auto.gluon.ai/
[^AutoML のための機械学習 フレームワーク AutoGluon のご紹介]: https://pages.awscloud.com/rs/112-TZM-766/images/1.AWS_AutoML_AutoGluon.pdf

# 結論

GitHubで公開されているREADME[^AutoGluon(GitHub)]に記載されている情報を参考に、下記のコマンドを実行します。

[^AutoGluon(GitHub)]: https://github.com/awslabs/autogluon

```sh

!pip install --upgrade pip
!pip install --upgrade setuptools
!pip install --upgrade "mxnet<2.0.0"
!pip install --pre autogluon
```

不穏な実行結果が表示されます。左下の「RESTART RUNTIME」を押し、ランタイムを再起動します。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408337/ac87171a-79e4-f420-5e11-64868c42706a.png)

「はい」を押します。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408337/ca8c1802-d60b-3137-cf5a-a524c23a8af6.png)

すると、以下のようなimport文が実行できるようになります。

```python

from autogluon.tabular import TabularDataset, TabularPredictor
```

もちろん、READMEに記載されているサンプルコードも実行できます。

```python

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)
```

とても興味深い実行結果が見られますね！

```sh

（省略）

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をどんどん体験していきましょう！

# おまけ

```sh
---> 32 from dask.utils import ensure_dict, format_bytes, funcname, stringify
```

```sh
ImportError: cannot import name 'stringify'
```

個人的にこのエラー文とエンカウントすることが多かったです。そんな人に届いてほしいので書いておきました。（検索でひっかかれ！）