BQMLについて雑にまとめました。
構文等についてはほとんど書きません。
かなり雑に書いているので雰囲気だけ掴んでもらえるといいかもしれません。
詳細版は後日書く(と思います。)
BQMLってなに?
- Bigqueryで機械学習ができるよ
- SQL(StandardSQL)でできるよ
何ができるの?
-
線形回帰
- 予測に使える
- ex: こんな行動をした時ユーザーは課金するよ
- 予測に使える
-
ロジスティック回帰
- 要因特定に使える
- ex: 課金したユーザーはこの行動をしたから課金したよ
- 要因特定に使える
料金
- 今はかからないはず(BQの課金体系同様スキャン量で課金される)
- 2018/12/15からお金がかかる(遊ぶなら今がチャンス!)
- モデルの作成: 250$/TB
- 評価,予測: $5/TB
(参考:https://cloud.google.com/bigquery/pricing#bqml)
どうやってやるの?
1.モデルの作成
-
CREATE MODEL
を使ってモデルを作成- 線形回帰/ロジスティック回帰でモデルを作る
- 全データを使ってモデルを作らないように!(学習用と検証用に分ける)
- 目的変数には
as label
をつける
2.モデルの評価
-
ML.EVALUATE
を使って作成したモデルを評価する- モデルの評価に使うデータは検証用を使う
- 統計がよく分からん人は最低限下記だけみれば良さそう
- ロジスティック回帰
- f1_score:モデルの精度。1に近ければgood
- 線形回帰
- r2_score: 決定係数。1日近ければgood
- ロジスティック回帰
3. 予測
-
ML.PREDICT
を使って予測する -
predicted_{column_name}
が予測値として取得できる