Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データサイエンス100本ノック(構造化データ加工編) No1~40までをSQLで書いてみて
Search
wakama1994
June 21, 2022
Programming
0
100
データサイエンス100本ノック(構造化データ加工編) No1~40までをSQLで書いてみて
社内のML技術情報共有会
wakama1994
June 21, 2022
Tweet
Share
More Decks by wakama1994
See All by wakama1994
Kaggleの歩き方-関西Kaggler会に参加してみて-
wakamatsu_takumu
2
370
BQで天気基盤をつくって、役立つ情報を可視化してみた!
wakamatsu_takumu
4
960
「データモデリング実践入門」は20年経っても色あせない
wakamatsu_takumu
2
750
いろんな可視化ツールあるけどggplotて何がいいの?- 複数ツールで比較してみた!-
wakamatsu_takumu
1
1.2k
文系出身でも「アルゴリズム×数学」はスッキリ理解できた!話
wakamatsu_takumu
0
400
ChatGPTにどんなときRを使えばいいか聞いてみた!
wakamatsu_takumu
0
640
A/Bテスト実践ガイド ~真のデータドリブンへ至る信用できる実験とは~
wakamatsu_takumu
1
960
EBImageを用いたVR画像の変化域抽出と生態系への活用.pdf
wakamatsu_takumu
0
320
Other Decks in Programming
See All in Programming
Discord Bot with AI -for English learners-
xin9le
1
110
最新TCAキャッチアップ
0si43
0
250
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
140
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
150
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
3
390
romajip: 日本の住所CSVデータを活用した英語住所変換ライブラリを作った話
sangunkang
0
2.4k
かんたんデザイン編集やってみた~「完全に理解した」までの道のり~
morit4ryo
1
120
Full stack testing :: basic to basic
up1
1
870
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
11
3.2k
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
1
610
似たもの同士のPerlとPHP
uzulla
1
110
DevTools extensions で 独自の DevTool を開発する | FlutterKaigi 2024
kokiyoshida
0
430
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Practical Orchestrator
shlominoach
186
10k
Music & Morning Musume
bryan
46
6.2k
KATA
mclloyd
29
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Designing for Performance
lara
604
68k
Adopting Sorbet at Scale
ufuk
73
9.1k
Thoughts on Productivity
jonyablonski
67
4.3k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Transcript
データサイエンス100本ノック(構造化データ加工編) No1~40までをSQLで書いてみて Machine learning 技術情報共有会 Takumu Wakamatsu Date 2022.06.21
取り組んだ理由 最近仕事でGoogle Data portalを活用した案件を担当 ➢ Data portalとの連携上、Google Big Queryを活用する機会も増えた ➢
pythonに比べ使いやすいケースも結構ある ➢ その一方、複雑な処理になると、コーディングが難しい • SQLの練習ができつつも、その他の言語との比較をして、適切なタイミング でBig Queryを使えるようになりたい!
本書に関して 2020年にデータサイエンティスト協会 が、GitHub上に公開 2022年の1月にソシム社から「データサ イエンス100本ノック構造化データ加工編ガイ ドブックが発売され、こちらを購入し て、実施中 https://digitalpr.jp/r/39499
構成と進捗 https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess/blob/master/docker/doc/100knocks_guide.pdf 6/12(日)から初めて、1〜40まで実施(No7の途中まで、疲れてできない日もあり) →SQLのみで実施(解答見るときに、pythonコードもたまにみてる)
構築したい方は以下で https://github.com/The-Japan-DataScientist-Society/100knocks -preprocess/blob/master/docker/doc/100knocks_guide.pdf
実際やってみて
感想 • 基礎統計量(最大、平均とか)をサクッと出す分には、SQLの方が書きやすい • 一方、複雑な結合とかに当たると、SQLの場合サブクエリが長くなったり、連 携がやりにくかったりするので、記述量が多くなるので、python(で実装され ているpandasの処理)の方が良さげ • 趣味程度にやる分だと、楽しい •
Dockerの環境に触れられるので、知見が広がった
SQLが楽な場合 SQL python S-024: レシート明細データ(receipt)に対し、顧客ID(customer_id)ごとに最も新しい売上年月日(sales_ymd)を求め、10件表示せよ。
SQLが面倒な場合 SQL python P-038: 顧客データ(df_customer)とレシート明細データ(df_receipt)から、顧客ごとの売上金額合計を求め、10件表示せよ。ただし、売上実績がない 顧客については売上金額を0として表示させること。また、顧客は性別コード(gender_cd)が女性(1)であるものを対象とし、非会員(顧客IDが"Z"から 始まるもの)は除外すること。
今後に関して 本書に関して • 6月末を目処に、SQLに関して、100問全てやり切るのを目標 • 実務で使える場面も多いので、サンプルコードで蓄積しておきたい(特に基 礎統計量のあたりとかは) • 暇なので、オラクルのSQLがらみの検定とかは受けてみたい(ただし、お金が高 い)
実務で使いたい方(参考) データベースの構築は厳しいと思うので、 Google Big Queryが個人的にはオススメ • csvがローカルからのアップロードが可能 な他、S3やドライブからもアップロード 可能 •
社内だと、csvデータの処理が現状多いで すが、サクッとデータ切り出したい時は pythonよりは楽(と思う) ◦ ただしカラム表記が日本語対応していないの が、欠点 uery-create-table-by-local-file-upload/