Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GCPUG kitakyu#1/熊本#1「BigQuery+BigQueryMLでKaggle...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
piacerex
February 14, 2019
Programming
1.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCPUG kitakyu#1/熊本#1「BigQuery+BigQueryMLでKaggle機械学習を攻略してみた」
piacerex
February 14, 2019
More Decks by piacerex
See All by piacerex
実践生成AIレクチャー会(基本編)※高度編イントロ無版
piacerex
1
580
「エッジ×分散生成AI」の技術と変わる産業、そしてITの未来
piacerex
0
990
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
1
2.3k
ノーコードと生成AI、IoTが繋がると何が出来るか?
piacerex
0
120
ElixirがHW化され、最新CPU/GPU/NWを過去のものとする数万倍、高速+超省電力化されたWeb/動画配信/AIが動く日
piacerex
0
640
fukuoka.ex/kokura.exとElixirって何ソレ美味しいの?つまみ食い
piacerex
0
180
PMMとは? … モダンなSaaSプロダクトに必須な役割(「プロマネチョットデキル#5」より)
piacerex
0
330
とうとう実践配備された ElixirDesktopにようこそ!!
piacerex
0
1.8k
7年間アドカレ続け、トップランカー入りしたElixirにようこそ!!
piacerex
0
420
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
280
R8 の設定見直しでアプリサイズ削減
andpad
0
210
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
970
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.3k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
3
4.3k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
200
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
190
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
250
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
So, you think you're a good person
axbom
PRO
2
2.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Scaling GitHub
holman
464
140k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
KATA
mclloyd
PRO
35
16k
Transcript
GCPUG kitakyu#1/熊本 第1回 BigQuery+BigQuery MLで Kaggle機械学習を攻略してみた ~SQLだけでモデル構築と予測ができてしまう新世代AI・ML開発~ 2019/02/11 ver 0.5作成
2019/02/13 ver 0.9作成 2019/03/16 ver 1.0作成
カラビナテクノロジー株式会社 CTO 常務 / 他2社経営 プログラマ歴36年 / XPer歴18年 / 福岡
技術顧問 (3社) AIジョブカレ 福岡代表 / enPiT (文科省 社会人IT育成) 講師 。 森 正和 |> 。 福岡Elixirコミュニティ「fukuoka.ex」 北九州GCPユーザグループ「GCPUG kitakyu」 福岡 理学部 / IAI Fukuoka / 「通常の3倍」福岡 「量子コンピュータ by Blueqat」 / 「OpenQL」 福岡Elixirプログラマ / データサイエンティスト / 重力プログラマ my favotite technology & implements. Twitter/Qiita/GitHub @piacere_ex
OSS書いて、仕事作りつつ、AIチームのトップもやります
プログラマを35年間続け、現在、「重力プログラマ」中 重力波解析するし、重力・流体・天体シミュレータも作る
4 2018/9/13 福岡 理学部 十限目 「重力と宇宙を愛する全ての人に」 #3
重力・宇宙イベント会 第1回は、こんな感じでした
福岡で人工衛星飛ばす企業、QPS大西さんも登壇
None
マイナー言語でも、地味に皆様の生活を支えるインフラ
ライブデモする「MeetUp」+入門者OKな「もくもく会」 仕事終わり、くつろぎ、ほろ酔いつつ、Elixir/Phoenix による先端プログラミングに触れるイベントを定期開催 リモート参加もできますので、よろしければ、 ”福岡 Elixir” でググって、connpassご登録ください もくもく会 (毎月、入門者もOK) MeetUp
(隔月、経験者向け)
GPUドライバとscikit-learn/Keras相当を実装中 「Elixir」の性能・並列性・生産性をAI・ML文脈でも活かすため、 fukuoka.exでGPU実装を行い、機械学習エンジン開発中です 半年後にはscikit-learn相当、1年以内には、GPU対応済の Keras相当をリリース予定です 北九大、京大の先生と共に Elixir GPU活用の共同研究 論文も書いてます
AI・MLに欠かせない前処理系をOSSで無償提供 AI・MLには、前処理 (データクレンジング、変換・集計・加工) が 欠かせませんが、Elixir+Phoenix+Vue.jsで開発したOSS 「Esuna」を使えば、UI上でデータ処理を設定でき、AI・MLへと スムースにデータを流せます
AI学校「AIジョブカレ」の福岡代表&講師やってます AI権威の松尾研出身で「詳解ディープラーニング」著者、 巣籠さん監修のAI学校、現役のエンジニアが講義中 https://www.aijobcolle.com/
None
2019年1月にGCPUG kitakyuを発足しました 初回から、GCE/GKE/CloudSQL/BigQuery ML (とElixir)で動くアプリをライブデモする実践セッション
15 本編ここから
16 目次 1. BigQuery/BigQuery MLとは? 2. KaggleをBigQuery MLで攻略する 3. BigQuery入門
4. BigQuery ML入門 5. Kaggleで予測結果を評価してもらう
17 1.BigQuery/BigQuery MLとは?
18 1.BigQuery/BigQuery ML (BQML) とは? BigQueryは、GCPで提供される、ペタバイト級のビッグデータを 手軽に扱えるデータウェアハウスです ポピュラーなSQLにより、既存DBと同じ操作感を実現しつつ、 巨大なデータを数秒で処理できる (裏でオートスケールされる)、
容易性と高速処理を両立した、列指向ストレージです https://cloud.google.com/bigquery/ BigQuery ML (Machine Learning) は、上記BigQuery に投入済のデータから、SQLだけで機械学習モデルの自動構築 と予測ができる、新世代のAI・ML開発環境です https://cloud.google.com/bigquery/#bigqueryml
19 2.KaggleをBigQuery MLで攻略する
20 2.KaggleをBigQuery MLで攻略する Kaggleとは、全世界のデータサイエンティストが賞金獲得を争う コンペサイトで、上位入賞者は高額でヘッドハンティングされます 今回、BigQuery MLを使って、このKaggleのコンペを攻略して みたいと思います
21 2.KaggleをBigQuery MLで攻略する 対象コンペとして、Kaggleで最も有名なチュートリアル的存在、 「タイタニック生存者予測」を扱います (上部「Data」から訓練データとテストデータをダウンロードします)
22 2.KaggleをBigQuery MLで攻略する ちなみに、データ前処理は、Elixirで開発したデータサイエンス OSS「Esuna」を使って実施しました (手順は下記コラム参照) https://qiita.com/piacere_ex/items/ab0b32c521293d4ab38e
23 3.BigQuery入門
24 3.BigQuery入門 「BigQuery」は、GCPメニュー下方にあります
25 3.BigQuery入門 左メニューのインスタンスを選び、「データセットを作成」をクリック
26 3.BigQuery入門 データセットはDB的な存在で、配下にテーブル追加できます 日数指定で自動削除も可能です (うっかり課金が気になる方はコレ)
27 3.BigQuery入門 「テーブルを作成」でテーブル作成およびデータ投入ができます
28 3.BigQuery入門 GCS/アップロード/GoogleDriveで投入データを指定します
29 3.BigQuery入門 投入データのフォーマットは、CSV含む5種類から選べます
30 3.BigQuery入門 テーブルの列型は、投入データから「自動検出」で判別できます
31 3.BigQuery入門 CSVにヘッダー行がある場合は、「スキップするヘッダー行」に「1」 を指定してください (先々月は要らなかった…)
32 3.BigQuery入門 投入データから「自動検出」された列型でテーブル作成されます
33 3.BigQuery入門 投入データの行数が正しいかを「詳細」タブで確認します
34 3.BigQuery入門 投入データの内容は、「プレビュー」タブで確認できます
35 3.BigQuery入門 「クエリエディタ」でSQLを編集/実行できます
36 3.BigQuery入門 結果は、DL/テーブル保存/GoogleDrive保存が選べます
37 3.BigQuery入門 SQLは、「クエリを保存」「保存したクエリ」で保存/復帰できます
38 3.BigQuery入門 「クエリをエディタで開く」か[↓]アイコンでSQLを再編集できます
39 3.BigQuery入門 ▪注意点 • scikit-learnやKerasで利用することを想定した前処理後 のデータを投入する場合、キーが削除済みであることが多い ですが、キーが無いと、BigQueryではソートできなくなるため、 キーが残っているデータを使ってください • 特徴量と正解データは、分割されていない方が、BigQuery
では扱いやすいです (分割されていても、joinすればOK)
40 4.BigQuery ML入門
41 4.BigQuery ML入門 モデル構築は、SQLの「create model」で行います
42 4.BigQuery ML入門 create modelでは、モデルタイプとして、以下2つが選べます ① linear_reg…線形回帰モデル ② logistic_reg…ロジスティック回帰モデル 続くselect文にて、特徴量
(入力データのこと、キー列は削除) と正解データのセットを設定しますが、正解データの列名として、 「label」という固定列名を指定する必要があります create model titanic.linear_model options( model_type = 'linear_reg' ) as select --t.PassengerId, t.Pclass, t.Sex, t.Age, t.SibSp, t.Parch, t.Fare, t.Embarked, s.Survived as label -- 正解データは「label」とする必要がある from titanic.fit_train t, titanic.fit_supervised s where t.PassengerId = s.PassengerId
43 4.BigQuery ML入門 【参考:機械学習、ディープラーニングに詳しい方向け】 option指定できるパラメータは、機械学習やディープラーニング をやっている方には、お馴染みのものが利用できます https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create
44 4.BigQuery ML入門
45 4.BigQuery ML入門
46 4.BigQuery ML入門
47 4.BigQuery ML入門 モデルによる予測は、「ml.predict」で行います
48 4.BigQuery ML入門 ml.predictで、テストデータと予測値「predicted_label」が セットになったものが返ってくるので、Kaggle提出用の加工として、 キーの「PasesngerId」と、予測値を「Survived」と列名変更 した2列を出力します なお、キーでソートしないと、データ順がバラバラになるので、 order byでキーを指定しておきます
select PassengerId, predicted_label as Survived from ( select * from ml.predict( model titanic.linear_model, table titanic.fit_test ) ) predict order by PassengerId
49 4.BigQuery ML入門 結果は、CSV/JSONダウンロードしたり、テーブル化できます
50 4.BigQuery ML入門 ▪注意点 • predicted_labelが、欲しい答えの桁になっていない場合 (たとえば、0/1が欲しいところが、小数点数値で返ってきて いる等)は、データ加工が必要です
51 5.Kaggleで予測結果を評価してもらう
52 5.Kaggleで予測結果を評価してもらう 「Submit Predictions」から結果CSVをアップロードします
53 5.Kaggleで予測結果を評価してもらう 線形/ロジスティック共にスコア更新ならずも、DLの結果に肉薄 以前、適当なKerasモデルで出したスコア https://qiita.com/piacere_ex/items/771389e1fe66dcf795c5 今回、BigQuery MLで出したスコア (Kerasモデルより0.02低い)
54 ご清聴ありがとうございます