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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
160
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
160
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
2
1.2k
AI・ロボティクスと自動化社会 / AI, Robotics, and the Automated Society
ks91
PRO
0
120
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
260
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
310
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
730
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
7.8k
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
440
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
260
どうして今サーバーサイドKotlinを選択したのか
nealle
0
170
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Discover your Explorer Soul
emna__ayadi
2
1.2k
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
ご静聴ありがとうございました!
懇親会!!