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
BigQueryで行う、 機械学習のための データ前処理
Search
hiroaki
December 18, 2019
Technology
4
2.5k
BigQueryで行う、 機械学習のための データ前処理
hiroaki
December 18, 2019
Tweet
Share
More Decks by hiroaki
See All by hiroaki
機械学習を無理なく広告システムに導入する
hiroaki8388
2
5.9k
Pythonで、処理をより効率化するためのTips集
hiroaki8388
15
11k
Other Decks in Technology
See All in Technology
Copilot coding agentにベットしたいCTOが開発組織で取り組んだこと / GitHub Copilot coding agent in Team
tnir
0
120
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
240
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
180
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
520
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
160
CDK Vibe Coding Fes
tomoki10
1
450
[ JAWS-UG千葉支部 x 彩の国埼玉支部 ]ムダ遣い卒業!FinOpsで始めるAWSコスト最適化の第一歩
sh_fk2
2
150
CDK Toolkit Libraryにおけるテストの考え方
smt7174
1
360
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
180
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
290
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
430
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
It's Worth the Effort
3n
185
28k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
Designing for Performance
lara
610
69k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Bash Introduction
62gerente
613
210k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
GitHub's CSS Performance
jonrohan
1031
460k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Six Lessons from altMBA
skipperchong
28
3.9k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Transcript
BigQueryで行う、 機械学習のための データ前処理 GCPUG Tokyo December 2019 長谷川大耀 (Fringe81)
自己紹介 長谷川大耀(@Hase8388) で 機械学習の開発やってます
BigQueryで機械学習が行えると何が嬉しい? • 大量のデータから、安く簡単にデータセットを構築できる • SQLで処理ができるので、誰でも簡単に実行可能 • BQMLで構築したモデルにシームレスにデータを流し込める 今回話すこと さらによりよいモデルを作るために、 BQ(ML)での前処理を行うための方法の紹介
話さないこと アルゴリズムの話など、モデル自体の仕組みの話
機械学習では、前処理がなぜ重要? 解くべきタスクの本質を、 より明らかな形として表現するデータに加工することで、 モデルの性能を更に引き出すことができる 1. 概観の把握 2. 特徴量の作成、変換 3. モデルにデータセットを流し込む
それぞれのフェイズで 代表的な関数+自分が好きな関数を紹介します
1. データの概観するための関数 • 分布の概観把握なども簡単にできる • 基本的な統計集約関数
より複雑な分析や可視化はJupyterで Jupyter上でBQの出力結果を DataFrameとして格納し、pandas/matplotlibなどで分析 google-cloud-bigqueryでJupyter上から接続 https://googleapis.dev/python/bigquery/latest/magics.html#module-google.cloud.bigquery.magics 誤ったクエリでの重課金を 防ぐために、課金される容量に 上限もつけれる
2. 特徴量を作成するための関数 様々な特徴量作成・変換のための 前処理用の関数が、最近続々追加 ! • ML.QUANTITLE_BUCKTIZE 連続値から、多項式特徴量を作成
2. 特徴量を作成するための関数 様々な特徴量作成・変換のための 前処理用の関数が、最近続々追加 ! • ML.FEATURE_CROSS 交差特徴量を作成
2. 特徴量を作成するための関数 様々な特徴量作成・変換のための 前処理用の関数が、最近続々追加 ! • ML.NGRAMS 文章を指定した単位で分かち書き
3. 特徴量を変換するための関数 特徴量の変換も、 短いクエリで簡単に実行可能 ! • IF 二値化
3. 特徴量を変換するための関数 特徴量の変換も、 短いクエリで簡単に実行可能 ! • ML.QUANTITLE_BUCKTIZE 連続値を指定した数の binに振り分ける
3. 特徴量を変換するための関数 特徴量の変換も、 短いクエリで簡単に実行可能 ! • ML.MIN_MAX_SCALER • ML.STANDARD_SCALER 正規化、標準化
ex. 地理情報をHash化する: ST_GEOHASH 地理情報をカテゴリとして扱うために Hash化するなら、ST_STGEOHASHが便利 ! Hash値を長くすればするほど、 より詳細な位置情報を表現できる
3. 前処理したデータをモデルに流し込む 課題: BQMLで作成したモデルにデータセットを流し込む その時、学習、予測、評価で、イチイチ同じ前処理を行うのはシンドい 学習 データ 前処理 評価 データ
前処理 予測 データ 前処理 モデル モデルを使う人が前処理のロジックを 知っている必要がある。つらい 学習時 予測時 重複!
3. 前処理とモデルを一体化: TRANSFORM句 前処理を集約-隠蔽でき、 より使いやすいモデルが構築できる 学習 データ 評価 データ 前処理
予測 データ モデル 解決: 前処理モデルの中に組み込み、 予測、評価ではただ元のデータを流し込むだけで良い 学習時 予測時
最後に BigQuery(ML)を使うと、SQLだけで簡単に前処理とモデル構築が行える 新しい関数とアルゴリズムがどんどん追加されているので、今後がより楽しみ
エンジニアを積極採用中です ! Front-end Back-end Scala / Go Python JS /
Elm React / RN