はじめに
先日のGoogle Cloud Next 2019 で発表されたいくつかのサービスの中にAutoML Tablesがあった。表形式のデータをノンプログラミングで分析できるプラットフォームらしい。Azure Machine Learning Studioとどう違うのか気になったのでつかってみることにした。
AutoML Tablesは現在ベータ版でQuick Startに沿ってやってみようと思う。予測精度の検証はよくわからないのでとりあえず使い方のみで。
やってみた
GCPのプロジェクトと課金付与はあらかじめやってあるものとする。QuickStart中のAPIを有効にするボタンをクリックすると以下の画面になるのでAPIを有効にする。そのあとボタンが使ってみるとなるのでクリックする
ページ上部の新しいデータセットをクリックする
データセット名をQuickstart_Dataset
としてデータセットの作成をクリックする
CSV from Google Cloud Storageを選択して、gs://
となっている欄にcloud-ml-tables-data/bank-marketing.csv
と入力してインポートをクリックする
インポート中。。2〜3分かかる
インポートが完了するとスキーマに画面が移るので、Target columnでDeposit
を選択して続行をクリックする。ここで選んだカラムが予測値を分析するカラムとなる
分析が終わると各カラムの平均や標準偏差などの統計が確認できる。カラム名などからどうやらこれはUCI Machine Learning RepositoryのBank Marketing Data Setではなかろうか
各カラムをクリックすると各値の分布などカラムに合ったグラフが表示される
Deposit
カラムは1 or 2の数値の分布になっている。Bank Marketing Data Setはポルトガルの銀行のダイレクトマーケティングの実績データらしい。1が預金契約不成立、2が契約成立の実績みたいだ。いわゆる二項分類(binary classification)問題になる
トレーニングをクリックしてトレーニングのタブに移動する。モデル名はデフォルトのまま、Training budgetに1
を入力、Input feature selectionはデフォルトのままとする。Training budgetは訓練するときの計算ノードを指定するところで1〜72まで指定可能。大きいほど料金が高くなるようだ
概要の項目で45211行の16個の特徴(カラム)を持つデータを学習することが確認できる。Optimization objective をクリックすると評価指標を選択できる。今回はデフォルトのAUC ROC
を選択する。TRAIN MODELをクリックする
トレーニング中。。だいたい1時間半くらいかかった。6 hours of free one-time use + $19.32 per hourらしいので今回は無料の範囲のようだ
トレーニングが終わるとこんな感じにレポートされる
評価タブに移動すると予測精度などが確認できる
評価タブの下段にはConfusion matrixや特徴ごとの重要度がレポートされている
予測タブに移動してオンライン予測を選択し、DEPLOY MODELをクリックする
確認をクリックする。デプロイにもけっこう時間がかかる。30分くらい
デプロイが完了したあと、Test and use your modelの欄に以下のようなJSONを入力して予測ボタンをクリックする
{
"payload": {
"row": {
"values": [
"45",
"technician",
"married",
"secondary",
"no",
"52",
"no",
"no",
"cellular",
"12",
"aug",
"96",
"2",
"-1",
"0",
"unknown"
]
}
}
}
予測結果が返ってくる。
デプロイ後、予測は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を使ってみたりしたい