VertexAIのAutoMLでKaggleのチュートリアルを試してみる

2023.01.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

データアナリティクス事業部でGoogle Cloudのデータエンジニアをしています、はんざわです。
最近、Professional Machine Learning Engineerの取得に向けて勉強しています。
その中でVertexAIに関する問題が出題されるため、Kaggleのチュートリアルデータを使って、モデルの構築と予測をやってみたいと思います。

Kaggleとは

そもそもKaggleとは
筆者は2年ほど前に何回かKaggleやそれに似たデータコンペティションに参加した経験があります。受賞経験等はありません。

Kaggle(カグル)は企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。モデル作成にクラウドソーシング手法が採用される理由としては、いかなる予測モデリング課題にも無数の戦略が適用可能であり、どの分析手法が最も効果的であるかを事前に把握することは不可能であることに拠る。

https://ja.wikipedia.org/wiki/Kaggle(公式wikipediaより)

使用するデータ

基本的にチュートリアル以外のコンペデータは一般公開禁止の認識なので、今回はチュートリアルコンペのデータを使用しました。
その中でも住宅価格予測のデータを利用します。土地データや住宅周辺に関するデータから住宅の価格を予測するコンペです。

https://www.kaggle.com/c/house-prices-advanced-regression-techniques

さっそく使ってみる

大まかな流れとして以下のようなステップで進めていきます。

  1. データをBigQueryにアップロードする。
  2. トレーニング用のデータセットを作成する。
  3. モデルをトレーニングする。
  4. トレーニングしたモデルで予測する。

データをBigQueryにアップロードする

Kaggleのサイトから予測に使うcsvデータをダウンロードし、BigQueryにテーブルを作成します。

画像は学習データのテーブルを作成していますが、同様にテストデータのテーブルも作成します。

トレーニング用のデータセットを作成する

予測に使うデータのデータセットを作成します。
今回ターゲットのデータはcsv形式の表データで住宅の価格を予測したいため、表形式回帰 / 分類を選択します。

次にデータソースをBigQueryから取得するように設定します。

テストデータも同じようにデータセットを作成します。

モデルをトレーニングする

Datasetに先程作成した学習用のデータセットを指定します。
さらにObjectiveにはRegressionClassificationがあり、今回のターゲットは住宅価格予測の回帰タスクなのでRegressionを選択します。

次に予測するターゲット(SalePrice)をカラムの中から選択します。

トレーニングオプションコンピューティングと料金はよしなに設定しました。
公式サイトにデータ数に応じた推奨トレーニング時間が記載してあるのでそれを参考にしていただければいいと思います。

https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/train-automl-model?hl=ja

最後にトレーニングを開始で学習が始まります。約2時間で学習が終了しました。

トレーニングしたモデルで予測する

予測に用いるテストデータをソースに指定します。予測結果もBigQueryに出力するように設定しました。

30分程度で予測が終わり、BigQueryに結果が出力されました。

まとめ

VertexAIのAutoMLを試してみました。難しい操作も知識も必要なく、簡単にモデルの構築から予測まで行うことができました。
機械学習やデータエンジニアリングの分野がGoogle Cloudの強みの1つであると思います。誰でも簡単に機械学習を利用することができるので是非ビジネスに活用してみてはいかがでしょうか。

参考サイト

https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview?hl=ja