created: 2021-05-15T05:22:29.000Z
BigQueryML で回帰分析をする
単回帰分析で済む単純な分析をするときに BigQueryML が便利だった。
やりたいこと
オートインクリメントなユーザテーブルがあるとして、ユーザ ID からその登録時期を予測したいとして、どれくらい相関性があるのかをみたい。
もちろんユーザテーブルには登録日 ( created
)も入っている。
クエリを書く
2 カラムの結果を返すクエリを書く。今回は説明変数が user_id で、目的変数は created となるが、目的変数のカラム名を label
にする必要がある。
SELECT created as label,
user_id
FROM `pjt-123345.ds.users`
ORDER BY label
create model する
クエリはそのまま CREATE MODEL
を足す。今回は線系回帰を使うので model_type = 'linear_reg'
CREATE MODEL `misc.kaiki_sample` OPTIONS(model_type = 'linear_reg') AS
SELECT created as label,
user_id
FROM `pjt-123345.ds.users`
ORDER BY label
結果を眺める
しばらくすると計算が終わる。モデルの 評価
タブをみると 決定係数
がみられる。
predict させる
こんなクエリでつくったモデルに predict をさせることができる。
-- 1970-01-01 からの日数が predicted_label から返ってくるのでキャスとして Date に戻す
SELECT DATE_FROM_UNIX_DATE(CAST(predicted_label AS INT64))
FROM ML.PREDICT(
MODEL `misc.kaiki_user_id__date`,
(
-- 説明変数のはカラム名が合っている必要がある
SELECT 123456 as user_id
)
)