#1.はじめに
以前試したSONYのAutoMLサービス「PredictionOne」をはじめ、次々にAutoMLが出てきていますね。今回は、2019年6月(?)にリリースされた、IBMCloudが提供するAutoAIを試してみようと思います。ひとまず、何も考えずにTitanicのデータを突っ込んでどうなるか見てみます!
いつものことながら、マニュアルは一切読まずに、勘と経験と度胸(!?)で進めます。
今回は、長くなりそうなので、「学習編」と「評価編」に分けて書こうと思います。
#2.環境とデータ
##(1)環境
・Windows10
・IBMCloud(ライトプラン)
・WatsonStudio
※やってみてわかったのですが、WatsonStudioのなかにAutoAIという機能がありました。
##(2)利用データ
Kaggle Titanicのデータ
https://www.kaggle.com/c/titanic/data
#3.手順
##(1)IBMCloudで機能を探す
ひとまずIBMCloudにログインして、カタログから「AutoAI」で検索・・・・するも出てこない。どこにあるんじゃ??とりあえず、サイドメニューの「AI」で絞り込んでみたところ、可能性があるのは、**「WatsonStudio」**でしょうか。とりあえずやってみます。(マニュアルは読まない!)
##(2)WatsonStudioを立ち上げる
①WatsonStudioを選択します。
②地域は**「ダラス」、リソースグループは「デフォルト」**で「作成」をクリックします。
参考:ライトプランで無料で使えるのは以下の範囲です。
1 authorized user
50 capacity unit-hours monthly limit
1 free small compute environment with 1 vCPU and 4 GB RAM (does not require >capacity unit-hours)
##(3)プロジェクトの作成
①こんな画面が出てきたので、とりあえず「GetStarted」を選びます!
③おおおあったAutoAIっぽいのがありました!これをクリックします!!
④途中で**「Select a region for Machine Learning」というダイアログが出たので「US South」**を選択しました。
⑤プロジェクト名に**「titanic」**を入力して、「Create」をクリックします。
すると、プロジェクトが立ち上がります。
##(4)データの登録
①「Asset」をクリックしてみます。
②右側に**「Drop files here or browse for files to upload.」**と書かれている欄があるので、学習用データ(train.csv)を登録してみます。今回はKaggleでおなじみのTitanicのデータを利用します。
③データが登録できたら、「New AutoAI experiments」をクリックします。
##(5)AutoAI New AutoAI experiments の設定&実行
①設定はデフォルトのまま、適当なAssetNameを入力して、「Create」をクリックします。
②学習データを選択する画面が出てきました!「Select from Project」をクリックして、先ほど登録した学習用データ(train.csv)を選択します。
③すると、DataSource欄にデータが表示され、左側にカラム名とデータ型が表示されます。
④左側の一覧において、目的変数として「Survived」を選択すると、自動的に予測タイプとして「BinaryClassification」、最適化指標として「ROC AUC」が選択されました。
⑤「Run experiment」をクリックして実行します。
(参考)この画面で「EditPrediction」をクリックすると、以下の画面が表示され、予測タイプと最適化指標を変更できるようです。(今回はデフォルトで行きます)
⑥約2分で処理が完了し、このような画面が表示されました。これを見ると、Extra Trees Classifierで、特徴量抽出とハイパーパラメーターのチューニングをいろいろな組み合わせで試しているように見えますね。
##(6)学習結果とモデル保存
①一番精度がよさそうなPipeline3を選択すると、モデルの詳細が表示されました。何の前処理もせずにAUCが0.870はなかなかの結果ではないでしょうか。
②作成したモデルを保存するために、右上の**「Save as model」**をクリックしてSaveします。
③保存が完了すると、Model欄に保存したモデルが表示されます。
今回は学習編ということでここまでにします
ここまでお読みいただいてありがとうございました。
#4.感想
何とかTitanicの学習してモデルを作ることができました。以前に試したSonyのPredictionOneと比較すると、やや操作が難しいように思います。IBMCloud自体が提供している機能が多いため、そもそもAutoAIがどこにあるのかが分かりにくかったです。(WatsonStudioの中にありました)とはいえ、マニュアルを読まなくてもここまでできたので、**「簡単に機械学習ができる!」**と十分言えると思います。
PredictionOneがモデル構築に特化したツールであるのに対し、AutoAIはIBMCloudの他の機能と組み合わせて実装していくという拡張性を考えると、利用する人のスキルや目的によってどちらが良いかは変わってきそうですね。
なお、学習精度の比較対象として、同じくTitanicのデータを使ってPredictionOneの交差検証ありでモデルを作成した結果との比較が以下です。学習の結果なので、過学習している可能性があり、これだけでは良し悪しはわかりませんが・・・
【学習精度の比較】
項目 | AutoAI | PredictionOne |
---|---|---|
AUC | 0.870 | 0.853 |
Accuracy | 0.805 | 0.773 |
Precision | 0.729 | 0.661 |
Recall | 0.805 | 0.839 |
次回は、このモデルで**テスト用データ(test.csv)**を用いて、予測精度比較をしてみようと思います
#5.関連記事
SONYのAutoMLサービス「PredictionOne」を使ってみた
https://qiita.com/paco_itengineer/items/7b6f1c62ae7263ac1a43
WatsonStudioの「AutoAI」を使ってみた(学習編)
https://qiita.com/paco_itengineer/items/910b7ee4b6373ff21e4e
WatsonStudioの「AutoAI 」を使ってみた(評価編)
https://qiita.com/paco_itengineer/items/ca1f97f17bb91ac351eb
GoogleCloudPlatformの「AutoMLTable」を使ってみた
https://qiita.com/paco_itengineer/items/4cf064d272f007fcae57