Lookerで始める機械学習


Looker Advent Calendar 2019 Day 8の投稿になります。

Lookerで始める機械学習ということで、Lookerを使って機械学習をする手順とそのメリットについてまとめていきたいなと思っています。

機械学習に必要なステップ

例えば、機械学習や統計解析などを使ってデータサイエンス的ななにかを行う場合、多くの場合以下のような手順で行います。

1. ローデータの収集
2. データのクレンジング
3. 検証したい仮説の実績データを取得
4. 統計/機械学習アルゴリズムを使用して予測の実施
5. 可視化やアラートなどを利用し、結果を共有

この手順にツールを追加すると・・・

1. ローデータの収集 → ETLツール
2. データのクレンジング → ETLツール/SQL
3. 検証したい仮説の実績データを取得 → SQL
4. 統計/機械学習アルゴリズムを使用して予測の実施 → R/Python/各種機械学習サービス
5. 可視化やアラートなどを利用し、結果を共有 → BIツール

データ活用を検討されている企業の場合、その多くはすでに1,2については安定した運用が行われているケースが多いですが、3以降ではそれぞれの手順で異なるツールやテクノロジーが必要とされるため、利用にあたり高いスキルが必要とされたり、運用管理が複雑になってしまいます。

しかし、Lookerではこの手順で必要とされるものをシンプルにして実行することを可能にします。

Lookerで実施する場合の手順

前述の通り、1,2に関してはすでに構築済みだと思いますので3からの手順に焦点を当てていきます。

3. 検証したい仮説の実績データを取得

機械学習を利用して様々な状況の予測を実施するためには、仮説を立て、仮説が正しいかデータをクエリし確認します。
通常、この手順では立てた仮説のもと実態の確認のためにデータを探索します。この際、多くのパターンの仮説検証を繰り返すために何度もSQLを書きます。これが地味に手間なのですが、LookerではExploreの画面から簡単にデータセットの中に自由にクエリをかけることができるため、思いつく限りの多くのパターンの仮説の検証が可能になります。

4. 統計/機械学習アルゴリズムを使用して予測の実施

3で検証したデータを元に予測をしていきます。
Lookerではこれをいくつかの方法で実施することが可能です。

Action Hubを使った連携

LookerにはAction Hubという、Exploreで探索した結果を他のソリューションへ定期配信することができる機能があります。これを使うとこでAmazon Sagemakerで機械学習を開始させたり、DataRobotにデータを送りプロジェクトを作成したりすることが可能です。

LookMLからクエリを作成

Google BigqueryML(BQML)の場合、Standard SQLを使用してモデル構築が可能となっています。LookerではこのBQMLの操作をLookMLを通して実現することが可能です。

ここでは、3で取得した結果を元に一時テーブルを作成し、それを元にモデル作成用のクエリを実行するようなLookMLを記述しています。

APIを使用してデータを取得

Looker内で定義したデータをAPIで取得することが可能になっています。Python SDKもあるため、APIを通してJupyter Notebookにデータを取得して利用することも可能です。

5. 可視化やアラートなどを利用し、結果を共有

4でモデルを構築/予測し、それを使用した結果はみなさんがお持ちのDWHにあると思うので、その可視化やアラート設定はLookerで簡単に実施ができます。

モデル精度の検証

予測結果を現場オペレーションへ展開

まとめ

従来ではステップ毎に異なるテクノロジーを利用しているためにデータの受け渡しなど煩雑な管理が必要となっていたところを、Lookerでは簡単にシームレスに繋ぐことが可能になるので、みなさんのデータ分析業務を簡単にステップアップさせることが可能です。