Posted at

AutoML Tablesを使ってみた


はじめに

先日のGoogle Cloud Next 2019 で発表されたいくつかのサービスの中にAutoML Tablesがあった。表形式のデータをノンプログラミングで分析できるプラットフォームらしい。Azure Machine Learning Studioとどう違うのか気になったのでつかってみることにした。

AutoML Tablesは現在ベータ版でQuick Startに沿ってやってみようと思う。予測精度の検証はよくわからないのでとりあえず使い方のみで。


やってみた

GCPのプロジェクトと課金付与はあらかじめやってあるものとする。QuickStart中のAPIを有効にするボタンをクリックすると以下の画面になるのでAPIを有効にする。そのあとボタンが使ってみるとなるのでクリックする

スクリーンショット 2019-04-14 19.07.11.png

ページ上部の新しいデータセットをクリックする

スクリーンショット 2019-04-14 19.15.00.png

データセット名をQuickstart_Datasetとしてデータセットの作成をクリックする

スクリーンショット 2019-04-14 19.15.29.png

CSV from Google Cloud Storageを選択して、gs://となっている欄にcloud-ml-tables-data/bank-marketing.csvと入力してインポートをクリックする

スクリーンショット 2019-04-14 19.18.25.png

インポート中。。2〜3分かかる

スクリーンショット 2019-04-14 19.22.21.png

インポートが完了するとスキーマに画面が移るので、Target columnDepositを選択して続行をクリックする。ここで選んだカラムが予測値を分析するカラムとなる

スクリーンショット 2019-04-14 19.25.07.png

分析が終わると各カラムの平均や標準偏差などの統計が確認できる。カラム名などからどうやらこれはUCI Machine Learning RepositoryのBank Marketing Data Setではなかろうか

スクリーンショット 2019-04-14 19.29.05.png

各カラムをクリックすると各値の分布などカラムに合ったグラフが表示される

スクリーンショット 2019-04-14 19.32.44.png

スクリーンショット 2019-04-14 19.33.32.png

Depositカラムは1 or 2の数値の分布になっている。Bank Marketing Data Setはポルトガルの銀行のダイレクトマーケティングの実績データらしい。1が預金契約不成立、2が契約成立の実績みたいだ。いわゆる二項分類(binary classification)問題になる

スクリーンショット 2019-04-14 19.59.56.png

トレーニングをクリックしてトレーニングのタブに移動する。モデル名はデフォルトのまま、Training budget1を入力、Input feature selectionはデフォルトのままとする。Training budgetは訓練するときの計算ノードを指定するところで1〜72まで指定可能。大きいほど料金が高くなるようだ

スクリーンショット 2019-04-14 19.36.19.png

概要の項目で45211行の16個の特徴(カラム)を持つデータを学習することが確認できる。Optimization objective をクリックすると評価指標を選択できる。今回はデフォルトのAUC ROCを選択する。TRAIN MODELをクリックする

スクリーンショット 2019-04-14 19.39.29.png

トレーニング中。。だいたい1時間半くらいかかった。6 hours of free one-time use + $19.32 per hourらしいので今回は無料の範囲のようだ

スクリーンショット 2019-04-14 19.43.58.png

トレーニングが終わるとこんな感じにレポートされる

スクリーンショット 2019-04-14 21.28.39.png

評価タブに移動すると予測精度などが確認できる

スクリーンショット 2019-04-14 21.30.55.png

評価タブの下段にはConfusion matrixや特徴ごとの重要度がレポートされている

スクリーンショット 2019-04-14 21.34.42.png

予測タブに移動してオンライン予測を選択し、DEPLOY MODELをクリックする

スクリーンショット 2019-04-14 21.38.26.png

確認をクリックする。デプロイにもけっこう時間がかかる。30分くらい

スクリーンショット 2019-04-14 21.39.19.png

デプロイが完了したあと、Test and use your modelの欄に以下のようなJSONを入力して予測ボタンをクリックする


testdata.json

{

"payload": {
"row": {
"values": [
"45",
"technician",
"married",
"secondary",
"no",
"52",
"no",
"no",
"cellular",
"12",
"aug",
"96",
"2",
"-1",
"0",
"unknown"
]
}
}
}

予測結果が返ってくる。

スクリーンショット 2019-04-14 22.07.46.png

デプロイ後、予測はWeb APIでもリクエストできるようになる

curl -X POST -H "Content-Type: application/json" \

-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
https://automl.googleapis.com/v1beta1/projects/[PROJECT NAME]/locations/us-central1/models/TBL[DATASET ID]:predict \
-d @request.json


まとめ

UIがシンプルなので直感的に操作できる。ややこしいパラメータ調整には関心がなくてとにかくデータの特徴から何かを発見したり予測をしたいという人にフィットするんじゃないだろうか。Beginner's guideによるとAutoML Tablesは二項分類、多項分類、回帰分析をサポートしていてデータの種類によって最適なモデルをビルドできるとある。あとでいろいろなデータを学習させたりAPIを使ってみたりしたい