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
510
進化計算ライブラリ DEAP の紹介
chimuichimu
2
44
Spotify Web API を使った分析で新しいお気に入りアーティストを発見する
chimuichimu
3
120
非競プロ勢によるUSPTOコンペ参加記
chimuichimu
2
1.2k
ウォンテッドリーのプロダクト開発における Python の開発・運用環境
chimuichimu
4
1.3k
会社訪問アプリ Wantedly Visit における 相互推薦システムの活用事例
chimuichimu
3
550
アウトプットを頑張り始めたデータサイエンティストの話
chimuichimu
7
1.1k
ざっくり理解するベクトル検索
chimuichimu
3
870
atmaCup#16 3rd place solution
chimuichimu
0
420
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Pragmatic Product Professional
lauravandoore
31
6.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Bash Introduction
62gerente
608
210k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Building an army of robots
kneath
302
43k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
KATA
mclloyd
29
14k
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による スキーマ定義とバリデーション