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.4k
BigQueryで行う、 機械学習のための データ前処理
hiroaki
December 18, 2019
Tweet
Share
More Decks by hiroaki
See All by hiroaki
機械学習を無理なく広告システムに導入する
hiroaki8388
2
5.6k
Pythonで、処理をより効率化するためのTips集
hiroaki8388
15
11k
Other Decks in Technology
See All in Technology
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
270
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
290
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
100
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
170
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
230
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Optimizing for Happiness
mojombo
376
70k
BBQ
matthewcrist
85
9.4k
Documentation Writing (for coders)
carmenintech
66
4.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Done Done
chrislema
181
16k
Automating Front-end Workflow
addyosmani
1366
200k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
Embracing the Ebb and Flow
colly
84
4.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
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