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
uv・Polarsの知見をエージェントに組み込む
Search
eikichi
July 16, 2026
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
uv・Polarsの知見をエージェントに組み込む
eikichi
July 16, 2026
More Decks by eikichi
See All by eikichi
今日からすぐできる Kaggleのススメ
eikichi838
1
1.1k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
750
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
We Are The Robots
honzajavorek
0
300
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Leo the Paperboy
mayatellez
8
2.1k
How to Ace a Technical Interview
jacobian
281
24k
Odyssey Design
rkendrick25
PRO
2
750
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Transcript
eikichi uv・Polarsの知見をエージェントに組み込む 〜Kaggleのチュートリアル第7版 実践編 LT〜 2026/07/16
自己紹介 Kaggle: @ekichi Xaggle: @eikichi838 Qiitale: @eikichi838 仕事: DS・AI機能受託開発 趣味:
Kaggle, 旅行 Kaggle関連: Competition Master (金2, 銀2) Udemy講師 関西Kaggler会 × Thinkit 『Kaggleは「◦◦」に役 立つ』 第2回寄稿 Kaggleのチュートリアル第7版寄稿 ← New!! eikichi (えいきち)
アジェンダ 1. 寄稿内容の概要 2. エージェントへの反映 3. まとめ 🎊 ご出版おめでとうございます 🙌
Polarsでの特徴量作成 寄稿内容の概要 uvとPolarsについて書きました Python環境を素早く構築するツール uvを活用した開発環境構築 特徴量を高速かつ効率的に作れるライブラリ この知見はエージェントにも活用できます
寄稿内容の概要 なぜコーディングエージェントに 組み込む必要があるのか
コーディングエージェントへの反映 「このデータの特徴量を作って、LightGBMで学習してください」 ライブラリ管理ツールはpip, uv, condaどれ使おうか 特徴量作る時はPandasにしようか、Polarsにしようか パラメータはどのように管理しようか 学習結果はどう記録しようか エージェントは実装できるが プロジェクトにとって何が正しいかまでは自動的には決まらない
Skills コーディングエージェントへの反映 uvはAGENTS.md、PolarsはSkillsに反映しよう AGENTS.md (CLAUDE.md) PythonではじめるMCP開発入門 https://github.com/karaage0703/python-boilerplate-llm/blob/main/rules.md 2. Notebook の基本構成を作る
上から順に実⾏できる構成にし、少なくとも以下の章を含める。 1. ⽬的と確認観点 2. 入⼒データと実⾏環境 3. ファイル構成とサンプリング条件 4. モダリティ別 EDA 5. リーク、品質、ラベルノイズの疑い 6. 主要所⾒ 7.planner へ引き継ぐ論点 8. 追加確認事項と次アクション 各章には、コードセルだけでなく、観察結果を説明する Markdown セルを入れる。 グラフや表を作成した場合は、それが何を⽰すかを短く記述する。 matplotlib で title 、axis label 、legend などに⽇本語を表⽰する場合は、 japanize-matplotlib を使⽤し、可視化前のコードセルで import japanize_matplotlib を実⾏する。 各コードセルの先頭には、そのセルが何を調べるための実装かを⽇本語コメントで記載する。 Markdown セルの説明、コードセル冒頭の調査⽬的コメント、主要所⾒は⽇本語で書く。 ライブラリ名、変数名、カラム名、ファイル名、エラーメッセージなど、コードやデータ由来 の文字列は英語のままでよい。 DataFrame を扱う処理は原則として polars を使⽤し、pl.DataFrame または pl.LazyFrame で実装する。 pandas は、対象ファイル形式や可視化ライブラリが pandas 前提で Polars だけでは扱 いにくい場合に限って最⼩限使⽤し、その場合は理由をコードコメントまたは Markdown に 残す。 2. Notebook の基本構成を作る 上から順に実行できる構成にし、少なくとも以下の章を含める。 1. 目的と確認観点 2. 入力データと実⾏環境 3. ファイル構成とサンプリング条件 4. モダリティ別 EDA 5. リーク、品質、ラベルノイズの疑い 6. 主要所見 7.planner へ引き継ぐ論点 8. 追加確認事項と次アクション 各章には、コードセルだけでなく、観察結果を説明する Markdown セルを入れる。 グラフや表を作成した場合は、それが何を示すかを短く記述する。 matplotlib で title 、axis label 、legend などに日本語を表示する場合は、 japanize-matplotlib を使用し、可視化前のコードセルで import japanize_matplotlib を実行する。 各コードセルの先頭には、そのセルが何を調べるための実装かを日本語コメントで記載する。 Markdown セルの説明、コードセル冒頭の調査目的コメント、主要所⾒は⽇本語で書く。 ライブラリ名、変数名、カラム名、ファイル名、エラーメッセージなど、コードやデータ由来 の文字列は英語のままでよい。 DataFrame を扱う処理は原則として polars を使用し、pl.DataFrame または pl.LazyFrame で実装する。 pandas は、対象ファイル形式や可視化ライブラリが pandas 前提で Polars だけでは扱 いにくい場合に限って最小限使用し、その場合は理由をコードコメントまたは Markdown に 残す。 # 環境構築 - Python 仮想環境の構築には必ず`uv` を使⽤してください: - `uv` はRust 製の高速なPython パッケージマネージャー兼仮想環境マネー ジャーです - 従来の`pip` や`venv` より高速で依存関係の解決も優れています - 仮想環境作成は `uv init` から `uv sync` で実⾏してください - 新規パッケージ追加: `uv add < パッケージ名>` - 環境構築⼿順は必ず`uv` を使⽤した方法で記述してください - 既存プロジェクトの環境再構築時も`uv` を優先的に使⽤してください # 環境構築 - Python 仮想環境の構築には必ず`uv` を使用してください: - `uv` はRust 製の高速なPython パッケージマネージャー兼仮想環境マネー ジャーです - 従来の`pip` や`venv` より高速で依存関係の解決も優れています - 仮想環境作成は `uv init` から `uv sync` で実行してください - 新規パッケージ追加: `uv add < パッケージ名>` - 環境構築手順は必ず`uv` を使⽤した方法で記述してください - 既存プロジェクトの環境再構築時も`uv` を優先的に使用してください
コーディングエージェントへの反映 環境で動くための前提条件はAGENTS.mdへ記載 # 環境構築 - Python 仮想環境の構築には必ず`uv` を使⽤してください: - `uv`
はRust 製の高速なPython パッケージマネージャー兼仮想環境マネー ジャーです - 従来の`pip` や`venv` より高速で依存関係の解決も優れています - 仮想環境作成は `uv init` から `uv sync` で実⾏してください - 新規パッケージ追加: `uv add < パッケージ名>` - 環境構築⼿順は必ず`uv` を使⽤した方法で記述してください - 既存プロジェクトの環境再構築時も`uv` を優先的に使⽤してください # 環境構築 - Python 仮想環境の構築には必ず`uv` を使用してください: - `uv` はRust 製の高速なPython パッケージマネージャー兼仮想環境マネー ジャーです - 従来の`pip` や`venv` より高速で依存関係の解決も優れています - 仮想環境作成は `uv init` から `uv sync` で実行してください - 新規パッケージ追加: `uv add < パッケージ名>` - 環境構築手順は必ず`uv` を使用した方法で記述してください - 既存プロジェクトの環境再構築時も`uv` を優先的に使用してください # CLI 実⾏とHydra 運⽤ - CLI 実⾏はHydra 前提とし、`@hydra.main` 付きスクリプトは必ず`configs/` 配下の設 定を読み込んで実⾏すること。パラメータ変更はCLI オーバーライドで⾏う(例: `uv run python scripts/train.py model=CenterNet dataset=centernet -m downsample_rate=2,4` ) 。 - 実⾏ディレクトリはHydra の`hydra.run.dir` に切り替わるため、相対パスの直書きを避 け、設定値(`dir.*` など)経由でパスを参照すること。 - 複数実験・スイープはHydra の`-m` で実⾏し、出⼒ディレクトリはHydra が付与するオー バーライド名で整理すること。 - 新規スクリプトを追加する場合もHydra の設定スキーマに従い、独⾃のCLI 引数パーサは作 らずHydra に統⼀すること。 - **Hydra 設定構成**: `configs/` 配下は以下のグループ構成を維持すること。新規設定 を追加する際は既存グループに追加するか、同じパターンで新グループを作成すること。 ``` configs/ ├── config.yaml # ルート設定(defaults list でグループを束ねる) ├── model/ # モデル定義(nemotron_nano, debug 等) ├── train/ # 学習パラメータ ├── data/ # データ設定 ├── cv/ # CV 戦略(kfold, stratified_kfold, none ) ├── eval/ # 評価設定 ├── experiments/ # 実験単位の設定(exp017-14.yaml 等) ├── prompt/ # プロンプトテンプレート └── dir/ # 環境別パス(local, kaggle, vastai ) ``` # CLI 実行とHydra 運⽤ - CLI 実行はHydra 前提とし、`@hydra.main` 付きスクリプトは必ず`configs/` 配下の設 定を読み込んで実行すること。パラメータ変更はCLI オーバーライドで行う(例: `uv run python scripts/train.py model=CenterNet dataset=centernet -m downsample_rate=2,4` ) 。 - 実行ディレクトリはHydra の`hydra.run.dir` に切り替わるため、相対パスの直書きを避 け、設定値(`dir.*` など)経由でパスを参照すること。 - 複数実験・スイープはHydra の`-m` で実行し、出力ディレクトリはHydra が付与するオー バーライド名で整理すること。 - 新規スクリプトを追加する場合もHydra の設定スキーマに従い、独自のCLI 引数パーサは作 らずHydra に統一すること。 - **Hydra 設定構成**: `configs/` 配下は以下のグループ構成を維持すること。新規設定 を追加する際は既存グループに追加するか、同じパターンで新グループを作成すること。 ``` configs/ ├── config.yaml # ルート設定(defaults list でグループを束ねる) ├── model/ # モデル定義(nemotron_nano, debug 等) ├── train/ # 学習パラメータ ├── data/ # データ設定 ├── cv/ # CV 戦略(kfold, stratified_kfold, none ) ├── eval/ # 評価設定 ├── experiments/ # 実験単位の設定(exp017-14.yaml 等) ├── prompt/ # プロンプトテンプレート └── dir/ # 環境別パス(local, kaggle, vastai ) ``` PythonではじめるMCP開発入門 https://github.com/karaage0703/python-boilerplate-llm/blob/main/rules.md
コーディングエージェントへの反映 特定タスクを上手くこなすためのものはSkillsへ ## 引数 - `$ARGUMENTS` でKaggle コンペティションURL またはコンペティションslug を受け取る(必須)
- 例: `https://www.kaggle.com/competitions/titanic/rules` - 例: `titanic` - 引数が指定されていない場合はユーザーにURL またはslug を確認する - Kaggle 以外のコンペティションURL の場合、このスキルでは取得できないためユーザーに報告す る ## 前提条件 - Kaggle CLI `2.2.0` 以上が利⽤可能であること - まず `uv run kaggle --version` を実⾏して確認する - `kaggle` が⾒つからない、またはバージョンが `2.2.0` 未満の場合は、`uv add --dev "kaggle>=2.2.0"` を実⾏してから再確認する - 認証エラーや参加同意エラーが出る場合は、ユーザーに `uv run kaggle auth login` また はKaggle 上でのコンペ参加・ルール同意を依頼する ## ワークフロー ### 1. テンプレートの読み込み - `docs/competition.md.sample` を読み込み、テンプレート構造を把握する ### 2. コンペティションslug の抽出 - URL の場合は `/competitions/{competition-slug}` からslug を抽出する - slug のみが渡された場合はそのまま使⽤する - 以降の公式URL は `https://www.kaggle.com/competitions/{competition-slug}` を 基準にする ### 3. Kaggle CLI による公式情報の取得 Kaggle CLI を使⽤してコンペティション情報を取得する。MCP Playwright は使⽤しない ## 引数 - `$ARGUMENTS` でKaggle コンペティションURL またはコンペティションslug を受け取る(必須) - 例: `https://www.kaggle.com/competitions/titanic/rules` - 例: `titanic` - 引数が指定されていない場合はユーザーにURL またはslug を確認する - Kaggle 以外のコンペティションURL の場合、このスキルでは取得できないためユーザーに報告す る ## 前提条件 - Kaggle CLI `2.2.0` 以上が利⽤可能であること - まず `uv run kaggle --version` を実行して確認する - `kaggle` が見つからない、またはバージョンが `2.2.0` 未満の場合は、`uv add --dev "kaggle>=2.2.0"` を実行してから再確認する - 認証エラーや参加同意エラーが出る場合は、ユーザーに `uv run kaggle auth login` また はKaggle 上でのコンペ参加・ルール同意を依頼する ## ワークフロー ### 1. テンプレートの読み込み - `docs/competition.md.sample` を読み込み、テンプレート構造を把握する ### 2. コンペティションslug の抽出 - URL の場合は `/competitions/{competition-slug}` からslug を抽出する - slug のみが渡された場合はそのまま使用する - 以降の公式URL は `https://www.kaggle.com/competitions/{competition-slug}` を 基準にする ### 3. Kaggle CLI による公式情報の取得 Kaggle CLI を使用してコンペティション情報を取得する。MCP Playwright は使⽤しない 2. Notebook の基本構成を作る 上から順に実⾏できる構成にし、少なくとも以下の章を含める。 1. ⽬的と確認観点 2. 入⼒データと実⾏環境 3. ファイル構成とサンプリング条件 4. モダリティ別 EDA 5. リーク、品質、ラベルノイズの疑い 6. 主要所⾒ 7.planner へ引き継ぐ論点 8. 追加確認事項と次アクション 各章には、コードセルだけでなく、観察結果を説明する Markdown セルを入れる。 グラフや表を作成した場合は、それが何を⽰すかを短く記述する。 matplotlib で title 、axis label 、legend などに⽇本語を表⽰する場合は、 japanize-matplotlib を使⽤し、可視化前のコードセルで import japanize_matplotlib を実⾏する。 各コードセルの先頭には、そのセルが何を調べるための実装かを⽇本語コメントで記載す る。 Markdown セルの説明、コードセル冒頭の調査⽬的コメント、主要所⾒は⽇本語で書く。 ライブラリ名、変数名、カラム名、ファイル名、エラーメッセージなど、コードやデータ 由来の文字列は英語のままでよい。 DataFrame を扱う処理は原則として polars を使⽤し、pl.DataFrame または pl.LazyFrame で実装する。 pandas は、対象ファイル形式や可視化ライブラリが pandas 前提で Polars だけで は扱いにくい場合に限って最⼩限使⽤し、その場合は理由をコードコメントまたは Markdown に残す。 2. Notebook の基本構成を作る 上から順に実行できる構成にし、少なくとも以下の章を含める。 1. 目的と確認観点 2. 入力データと実⾏環境 3. ファイル構成とサンプリング条件 4. モダリティ別 EDA 5. リーク、品質、ラベルノイズの疑い 6. 主要所見 7.planner へ引き継ぐ論点 8. 追加確認事項と次アクション 各章には、コードセルだけでなく、観察結果を説明する Markdown セルを入れる。 グラフや表を作成した場合は、それが何を示すかを短く記述する。 matplotlib で title 、axis label 、legend などに日本語を表示する場合は、 japanize-matplotlib を使用し、可視化前のコードセルで import japanize_matplotlib を実行する。 各コードセルの先頭には、そのセルが何を調べるための実装かを日本語コメントで記載す る。 Markdown セルの説明、コードセル冒頭の調査目的コメント、主要所⾒は⽇本語で書く。 ライブラリ名、変数名、カラム名、ファイル名、エラーメッセージなど、コードやデータ 由来の文字列は英語のままでよい。 DataFrame を扱う処理は原則として polars を使用し、pl.DataFrame または pl.LazyFrame で実装する。 pandas は、対象ファイル形式や可視化ライブラリが pandas 前提で Polars だけで は扱いにくい場合に限って最小限使用し、その場合は理由をコードコメントまたは Markdown に残す。 Explorer Skill(一部抜粋) fetch-competition Skill(一部抜粋)
まとめ 実装はエージェントにやってもらうでいいが 何を選び、なぜ使うかの本質部分は人間での理解が(まだ)必要 ライブラリ管理ツールはpip, uv, condaどれ使おうか → uv 特徴量作る時はPandas, Polars
どれ使おうか → Polars パラメータはどのように管理しようか → Hydra 学習結果はどう記録しようか → Wandb 参考になれば幸いです!ありがとうございました! 🙌