Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BigQueryMLハンズオン勉強会
Search
yaginuuun
November 09, 2018
Technology
1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BigQueryMLハンズオン勉強会
11/9 ハンズオン勉強会
yaginuuun
November 09, 2018
More Decks by yaginuuun
See All by yaginuuun
メルカリホーム画面におけるレコメンド改善事例 - Long-tailを考慮した辞書拡張
shyaginuma
3
1.7k
メルカリにおけるA/Bテストワークフローの改善 これまでとこれから
shyaginuma
2
2k
メルカリにおけるA/Bテスト標準化への取り組み
shyaginuma
20
14k
A/BテストにおけるVariance reduction
shyaginuma
1
3k
初めての機械学習PJを やってみて得た知見
shyaginuma
2
4.7k
過去コンペベースの学習をやってみたら意外と良かった話
shyaginuma
0
800
Kaggleもくもく会イントロ
shyaginuma
0
260
1on1 SQL Introduction at Globis
shyaginuma
1
1.5k
SlackへのKPI通知Botを作ったら いろいろ捗った話
shyaginuma
1
2.4k
Other Decks in Technology
See All in Technology
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
150
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
240
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
1
350
NDIAS CTF 2026 問題解説会資料
bata_24
0
180
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
140
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
240
5分でわかるDuckDB Quack
chanyou0311
4
310
ゼロをイチにする仕事が終わったあと
smasato
0
280
Claude Code 珍プレー好プレー
shinyasaita
0
200
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
310
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
260
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
A Modern Web Designer's Workflow
chriscoyier
698
190k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
My Coaching Mixtape
mlcsv
0
170
New Earth Scene 8
popppiees
3
2.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Code Review Best Practice
trishagee
74
20k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Into the Great Unknown - MozCon
thekraken
41
2.6k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
The Invisible Side of Design
smashingmag
301
52k
Documentation Writing (for coders)
carmenintech
77
5.4k
Transcript
BigQueryMLハンズオン 柳沼 慎哉 グロービス データサイエンティスト 2018/11/9
自己紹介 柳沼 慎哉 - 株式会社グロービス データサイエンティスト - Tableau, DataStudioなどBIツールが得意 -
機械学習、統計学勉強中 twitter : @shinmaidssin Qiita : @s_yaginuma
これの分析やってます - 「BigQuery ML」でSQLを書いて機械学習モデルを構築&予測でき る! - BigqueryMLで作成したモデルをGoogle Data Studioで可視化してみ た
- ビギナーズラックで跳ねた記事: 新米データサイエンティスト、研修プログラムを考える。
Qiita書いてます - 「BigQuery ML」でSQLを書いて機械学習モデルを構築&予測でき る! - BigqueryMLで作成したモデルをGoogle Data Studioで可視化してみ た
アジェンダ - BigQueryMLの概要 - ハンズオン - BigQueryMLの強み、弱み - 懇親会
アジェンダ - BigQueryMLの概要 - ハンズオン - BigQueryMLの強み、弱み - 懇親会
BigQueryMLの概要 ・BigQuery:SQLライクなクエリを用いて大規模なデータに対しても高速 に結果を返すことのできるDW ・BigQueryML:BigQueryのクエリエディタ上からSQLを書くように機械学 習モデルの構築、評価、予測ができる Docs : すべての BigQuery ML
ドキュメント
機械学習モデルとは? 与えられたデータ(説明変数)から、ターゲットとなる変数(目的変数)を 予測するモデル。 目的変数が離散値:分類 目的変数が連続値:回帰
学習のプロセス(線形回帰) ①初期化 y = a0x + b0
学習のプロセス(線形回帰) ②損失関数の計算 y = a0x + b0
学習のプロセス(線形回帰) ①重みの更新 y = a1x + b1
学習のプロセス(線形回帰) ④最適化 y = ax + b
学習のプロセス 線形回帰 y = ax1 + bx2 + cx3 +
dx4 + e a~d:最適化された重み 重みが格納された配列 = モデル
機械学習モデルとは? 具体例:コースの完了率 y = ax1 + bx2 + cx3 +
d 1ヶ月以内の完了率 コースの長さ コースの難易度 1動画の長さ 説明変数の重みが分かっていれば、新しいコースのリリース前にコース 完了率を予測できる
Python, R vs BigQueryML 機械学習用のパッケージがあり、そ れを利用する必要がある。 モデルの構築、評価、予測の一 連のプロセスをSQLライクに書 いて実行できる 学習コストが高い
学習コストが低い
アジェンダ - BigQueryMLの概要 - ハンズオン - BigQueryMLの強み、弱み - 懇親会
機械学習の流れ データの下処理 モデルの作成 モデルの評価 新データに対しての予測 SQLで加工、集計
Boston Housing データ ・ボストン近辺の住宅価格の予測 https://www.kaggle.com/c/boston-housing
BigQueryにデータセットを作成する ・GCPコンソールのナビゲーションメニューからBigQueryを開く ・自分のプロジェクト名にカーソルを合わせる ・データセットを作成をクリック ・データセットIDを入力し、データセットを作成する
・作成したデータセットをクリック ・テーブルを作成をクリック ・ソースデータ:アップロード → Slackからダウンロードしたデータを選 択。形式はcsvを選択 ・テーブル名を入力、スキーマの自動検出をチェック、作成 作成したデータセット内にテーブルを作成する
データの中身 - 目的変数 - medv : 区画の家の値段の中央値(/1000$) - 説明変数(13個): -
crim : 犯罪発生率 - zn : 住宅地の割合 - indus : 非小売業種の割合 - chas : チャールズ川の河川境界線かどうか - nox : 窒素酸化物濃度 - rm : 住居あたりの部屋数 - age : 1940年以前に建設された建物の割合 - dis : 5つのボストン雇用センターまでの距離の加重平均 - rad : 高速道路へのアクセスの良さ - tax : 1万ドルあたりの固定資産税率 - ptratio : 生徒と教師の比率 - black : 黒色人種居住者の割合 - lstat : 低所得者の割合
機械学習モデルの作成 CREATE MODEL ステートメント CREATE MODEL `<データセット名>.<モデル名>` OPTIONS( model_type='<使用するアルゴリズム>', input_label_cols=['<ターゲットのカラム名>'],
...) AS ( SELECT <学習に使用するデータを抽出するクエリ> ...)
トレーニングデータと評価データについて データ ・NGなケース 学習用 評価用 モデルは学習データに対して適合するので、評価用データに学習用 データと同じものを使うと実際よりも高い精度で予測され、真に未知の データに対しての予測性能が測定できない!
トレーニングデータと評価データについて データ ・OKなケース 学習用 評価用 予め学習用と評価用に分けておくことで、未知のデータへの予測性能 を測定することができる
機械学習モデルの評価 ML.EVALUATE 関数 SELECT * FROM ML.EVALUATE(MODEL `<モデル名>`, (<モデル作成に使用した特徴量を抽出するクエリ>))
モデルの評価 出力される評価指標: - mean_absolute_error:平均絶対値誤差 - mean_squared_error:平均二乗誤差 - mean_squared_log_error:平均二乗対数誤差 - median_absolute_error:絶対値誤差の中央値
- r2_score:決定係数 - explained_variance:因子寄与 平均二乗誤差:データに対するズレ → 低い方が良い 決定係数:データに対する当てはまり → 1に近い方が良い
作成したモデルで予測 ML.PREDICT 関数 SELECT * FROM ML.PREDICT(MODEL `<モデル名>`, (<予測するのに必要な特徴量を抽出するクエリ>))
特徴量の重みの確認 ML.WEIGHTS 関数 SELECT * FROM ML.WEIGHTS(MODEL `<モデル名>` y =
ax1 + bx2 + cx3 + d
BigQueryMLが自動でやってくれること 数値変数の標準化 単位:cm, %, kg, $... → 単位が違うと重みを比較できない 標準化:各データをそれぞれの特徴量の平均値を引き、標準偏差で割 る
特徴量の無次元化、スケーリング 異なる単位でも重みを比較できる
分類:アイリスデータの分類 BigQueryMLで多クラス分類が可能に! Google Cloud ブログ 折角なのでやってみましょう。
分類:アイリスデータの分類 - 特徴量: - sepal length(cm) - sepal width(cm) -
petal length(cm) - petal width(cm) - クラス: - Setosa - Versicolour - Virginica
手順: - BigQueryにアイリスデータを読み込む - iris/create_model.sqlでモデルを作成 - iris/evaluate_model.sqlでモデルを検証 - iris/predict.sqlで予測結果を出力
分類モデルの評価 出力: - 予測値 - 予測確率
アジェンダ - BigQueryMLの概要 - ハンズオン - BigQueryMLの強み、弱み - 懇親会
BigQueryMLの良いところ - 簡単! - データと同じ場所にモデルを置いておける - BIツールと連携しやすい(可視化) - 自動で色々やってくれる(データの分割、標準化)
(補足)BigQueryMLが自動でやってくれること② カテゴリ変数のダミー化 カテゴリ:カテゴリA、カテゴリB、カテゴリC... というデータはそのまま機械学習に使えない ID カテゴリ 1 A 2 B
3 C ID カテゴリ_A カテゴリ_B カテゴリ_C 1 1 0 0 2 0 1 0 3 0 0 1
BigQueryMLの微妙なところ - 現状使用可能なモデルが少ない - BigQueryML単体だと可視化ができない - パラメータサーチがしづらい
BigQueryMLの微妙なところ 現状使用可能なモデルが少ない 機械学習 教師あり学習 教師なし学習:未対応 回帰:線形回帰のみ 分類:ロジスティック回帰のみ クラスタリングや、人気のあるランダムフォレストなどの手法に対応して いない。
BigQueryMLの微妙なところ BigQueryML単体だと可視化ができない 下処理 モデルの作成 モデルの評価 新データに対しての予測 EDA EDA:探索的データ解析 分析の初期段階にデータの分布や目的変 数への影響をデータを可視化、集計しなが
ら観察する手法 BigQueryで可視化や集計結果の保持はしづ らいため、他のサービスを使用する必要が ある
BigQueryMLの微妙なところ パラメータサーチがしづらい ハイパーパラメータ:人間が設定する必要のあるパラメータ (例)最適なパラメータAを探したい場合: A = 0, 1, 2, 3,
4, 5, 10, ...に対しモデルを作成し精度を計算 最も精度の高いパラメータの値が最適と判断、採用 しかし、BigQueryMLではループ処理をサポートしていないため、不可能
現状考えられるユースケース ・BigQueryMLのみで全てやるのは考えづらい 下処理 モデルの作成 モデルの評価 新データに対しての予測 EDA モニタリング Datalab BigQuery
ご静聴ありがとうございました!
懇親会!!