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
PolarsとPanderaで実現する高速でロバストなデータ処理
Search
chimuichimu
March 28, 2024
6
2.4k
PolarsとPanderaで実現する高速でロバストなデータ処理
chimuichimu
March 28, 2024
Tweet
Share
More Decks by chimuichimu
See All by chimuichimu
ウォンテッドリーの推薦システム開発を支える評価とデプロイの仕組み
chimuichimu
1
520
進化計算ライブラリ DEAP の紹介
chimuichimu
2
45
Spotify Web API を使った分析で新しいお気に入りアーティストを発見する
chimuichimu
3
120
非競プロ勢によるUSPTOコンペ参加記
chimuichimu
2
1.2k
ウォンテッドリーのプロダクト開発における Python の開発・運用環境
chimuichimu
4
1.3k
会社訪問アプリ Wantedly Visit における 相互推薦システムの活用事例
chimuichimu
3
570
アウトプットを頑張り始めたデータサイエンティストの話
chimuichimu
7
1.1k
ざっくり理解するベクトル検索
chimuichimu
3
870
atmaCup#16 3rd place solution
chimuichimu
0
420
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Invisible Side of Design
smashingmag
298
50k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Teambox: Starting and Learning
jrom
133
8.8k
How GitHub (no longer) Works
holman
310
140k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Transcript
PolarsとPanderaで実現する 高速でロバストなデータ処理 みんなのPython勉強会 #102 Mar. 28 2024 - Chiaki Ichimura
© 2024 Wantedly, Inc.
自己紹介 市村千晃 • 経歴 ◦ SE, PM, DS@SIer(2017/4 ~ 2024/2)
◦ DS@ウォンテッドリー株式会社(2024/3~) • 興味 ◦ データ分析・機械学習 ◦ 推薦システム © 2024 Wantedly, Inc. @chimuichimu1
データ分析・機械学習のフロー © 2024 Wantedly, Inc. データ処理 データ準備 分析 価値提供 評価
データ分析・機械学習のフロー © 2024 Wantedly, Inc. データ処理 データ準備 分析 価値提供 評価
データ処理における課題 • 実行時間 ◦ 処理に時間がかかり、分析のサイクルを回すボトルネックに • データ品質 ◦ 想定外のデータや意図しない処理が、誤った分析やモデルの性能劣 化につながる
• 可読性 ◦ データの内容をコードから読み取るのが難しく、処理がブラックボック ス化しがち © 2024 Wantedly, Inc.
やりたいこと データ処理を 高速かつロバストに実行したい © 2024 Wantedly, Inc.
やりたいこと データ処理を 高速かつロバストに実行したい © 2024 Wantedly, Inc. Polars Pandera
Polarsとは? • Rustで実装されたテーブルデータ処理用のライブラリ • 並列処理や遅延評価の仕組みにより高速なデータ処理を実現 © 2024 Wantedly, Inc. https://github.com/pola-rs/polars
Polarsってどれくらい早いの? © 2024 Wantedly, Inc. https://pola.rs/posts/benchmarks/
Polarsってどれくらい早いの? © 2024 Wantedly, Inc. https://pola.rs/posts/benchmarks/ Pandasが21秒かかる処理(※)を Polarsは1秒未満で実行 ※ファイル読み込み ->
結合 -> フィルタ -> 演算 -> 集約 -> ソート
Panderaとは? • テーブルデータに対するバリデーション機能を提供するライブラリ • 2024/3のリリースでPolarsのサポートを開始(注:現時点ではベータ版) © 2024 Wantedly, Inc. https://pandera--1373.org.readthedocs.build/en/1373/polars.html#polars
Panderaとは? © 2024 Wantedly, Inc. データが満たすべき性質を スキーマとしてコードに定義 (型、最大値、最小値、非null…) データがスキーマを満たすかを チェック
基本的な使い方 https://pandera--1373.org.readthedocs.build/en/1373/polars.html#polars
Panderaを使うメリット © 2024 Wantedly, Inc. 不正な値が入力されると エラーが発生 データ品質の担保 SchemaError: Column
'price' failed validator number 0: <Check in_range: in_range(5, 20)> failure cases: shape: (1, 1) 想定外のデータや 意図しない処理に気づける🙆
Panderaを使うメリット © 2024 Wantedly, Inc. 可読性の向上 どんなデータが入出力されるか?を コードから読み取れる🙆 データが満たすべき性質を スキーマとしてコードに定義
データ処理における課題 まとめ © 2024 Wantedly, Inc. 実行時間 データ品質 可読性 Polarsによる
データ処理 高速かつロバストなデータ処理を実現 Panderaによる スキーマ定義とバリデーション