3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeをKaggleで使いこなすための「環境整備」を考える

Last updated at Posted at 2025-12-02

3行要約

  • KaggleコンペのためのClaude Code設定を考えてみました。
  • 提案したのは、3つの整備「コンテキスト整備」「プロジェクトルールの整備」「Slashコマンド整備」を整備したテンプレートを作成しました
  • これにより、初動のセットアップや単純作業をAIに任せ、人間は本質的な仮説検証に集中できる環境を実現します

序論:Claude CodeをKaggleで使いこなすための「環境整備」を考えるに至った背景

みなさん、KaggleコンペでClaude Codeを使っていますか?
Claude CodeをKaggleで使いこなす上での環境整備、ちゃんとしていますか?
私はCLAUDE.mdを作成するくらいの整備しか行えていませんでした。
ただ、実際にKaggleで使ってみると、単に CLAUDE.md を置くだけではカバーしきれない、Kaggle特有の「環境整備」の必要性を強く感じるようになりました。
実際に運用してみて、特に感じた課題は以下の3点でした。

問題1: Claudeはコンペの前提知識を持っていない問題

Claude Codeは素だと、最新のkaggleコンペの情報なんて知りません。
競技の仕様、評価指標、学習データ構造を理解していないので、毎回説明が必要になります。

そのため毎回、「このコンペはこういうデータで〜評価指標は〜ルールは〜」と説明する必要があります。そうしないと、学習データに存在しないカラムを参照しているコードを書いてエラーが出るみたいなことも起きました。

問題2:Claudeの行動範囲を制御できない問題

Claudeに任せると、意図しないファイルを変更したり、重要なコードを勝手に書き換えたりすることがあります。
特に深夜に意識朦朧とする中で作業している時に、プロンプトの設計が甘く、これが起こったりします。

「ここは変更しないで」と毎回言うのは面倒ですし、言い忘れると事故が起きます。また、Claudeが試行錯誤したゴミファイルがプロジェクト内に散乱するのも防ぎたいところです。

問題3:Kaggleの定型作業を毎回指示するのが面倒という問題

Kaggleには、どのコンペでも必ず行うお決まりのフローがあります。

  1. コンペのルールや評価指標を把握する
  2. 関連する過去コンペや論文をリサーチする
  3. データの基礎分析(EDA)を行う
  4. とりあえず動くベースラインモデルを作る

これらを毎回、ゼロから「〇〇のデータを読み込んで、欠損値を確認して、可視化して」と丁寧にプロンプトを書くのは非常に手間です。また、プロンプトの書き方によってAIの成果物にブレが生じるのも防ぎたいところです。

毎回プロンプトを考える指示出しのコストを少なくし、人間はより本質的な仮説を考えることに脳のリソースを使いたいのです。

この記事の目的

と言う課題感を背景に、Claude CodeをKaggleで使いこなすための「環境整備」を考えてみたのが本記事です。

Claude CodeをKaggleで使いこなすための3つの整備

先ほど述べた課題感を元に、以下の3つの整備を考えてみました。

1:Claudeに事前知識を渡すために、コンテクストを整備する

参加中のKaggleコンペについて、Claudeは次のことを一切知りません。

  • ルールを知らない
  • データ構造を知らない
  • 評価指標を知らない
  • どんな実験をしたかも知らない

つまり、背景情報がゼロです。きちんと知っておいて欲しい情報は整備しましょう。

基本情報を記録したmdファイルを用意する

一つに全ての情報をCLAUDE.mdに集約させると、コンテキストを圧迫するので、以下3つのmdファイルを作り、CLAUDE.mdから参照するようにします。

  • DATASET.md
    • データセットについて。学習データのカラム・テストデータのカラム情報。その他背景情報
  • METRIC.md
    • コンペのメトリックについて、数式や最適化の方向性について
  • COMPETITION.md
    • コンペのルール・submissionファイルのフォーマット・背景情報

CLAUDE.mdを設計する

CLAUDE.mdには、必ず知っておいてほしい情報と必ず守ってほしいルールをまとめています。
フォーマットの内容は以下のとおりです。

  • Competition Summary: コンペ概要、メトリック、期限など
  • Project Structure: フォルダ構成の理解
  • Role Definition: AIに期待する役割(例:Kaggle Grandmasterとしての専門性)
  • Memories and Key Reminders:
    • 絶対に守るべきルール(COMPETITION.mdなどの必読)
    • フォルダ運用のルール(ai-src vs src
    • 実行環境のルール(uv run python ... の使用など)

2. Claudeの予想外の行動を防ぐための、プロジェクトルールの整備

Claudeは自由に行動させると、本番コードを壊す・変な場所にファイルを作るなど、人間ならやらない事故を平気で起こします。だから以下を整備することで防ぎます。

  • プロジェクト構造の定義

  • CLAUDE.md に記載するルールの定義

  • ai-src/ ディレクトリの新設

    → AIが自由に作成・編集・実験して良いフォルダーとして用意。基本的に新しいタスクはここで実行させる

  • 人間が書くコードは従来の src/

    → AIには「明示的な指示がない限り編集禁止」とルール化する
    衝突を避けつつ AI の大量試行を可能にする設計

kaggle-with-ai-template/
├── configs/                # 設定ファイル群
├── data/                   # データセット (生データ)
├── src/                    # 本番コード
│   ├── commons/            # 複数のソリューションで共有される共通部品
│   ├── Solution1/          # 最終回答候補1 (例: LightGBMベース)
│   └── Solution2/          # 最終回答候補2 (例: NNベース)
│
├── ai-src/                 # AIの作業場 (AIが自由に作成・編集する実験コード)
│
├── notebook/               # Jupyter Notebook (人間主導のEDAや検証)
├── logs/                   # 実験結果のログ
│
├── CLAUDE.md               # AIへの指示書・メインコンテキスト
├── COMPETITION.md          # コンペ概要・ルール
├── DATASET.md              # データ詳細
├── METRIC.md               # 評価指標詳細
└── README.md

3. 定型作業実行の簡略化のために、Slashコマンドの整備

よく行う作業をslash command化する

Claude Codeでは、よく使う定型作業をカスタムコマンドとして登録できます。

  • /fetch-kaggle
    • Perplexity MCPを使用してWebから最新のコンペ情報を取得
    • 収集した情報をもとに COMPETITION.md, DATASET.md, METRIC.md を自動生成・更新
  • /create-claude-md
    • /fetch-kaggle で作成されたドキュメントを元に、CLAUDE.mdを作成。
  • /download-dataset
    • Kaggle APIを使ってデータセットをダウンロード・解凍し、data/ ディレクトリに自動配置
  • /research
    • 指定したトピック(例:「時系列データの最新手法」)についてPerplexityで深堀り調査
  • /eda
    • データセットに対してEDAのためのNotebookを作成
  • /baseline
    • コンペのタスクとデータ形式に合わせて、学習・推論のベースラインを自動生成

毎回手動でプロンプトを書くのは面倒な処理も、Slashコマンド化して一発で実行できるように。

3つの整備を反映したプロジェクトテンプレートを作ってみた

本記事で紹介した整備をテンプレートを作成しました。GitHubからclone可能です。

紹介も兼ねて、コンペ開始からベースライン作成までを行ってみます。

まずは、ベースのフォルダーを作成するスクリプトを実行し、Claude Codeを起動します。

sh create_structure.sh
claude

以後は基本的にはClaude CodeのSlashコマンドを叩いていきます。

1. コンペ情報の取得から3種類のmdファイル(DATASET.md、METRIC.md、COMPETITION.md)を生成

Titanicのコンペに参加するとします。

/fetch-kaggle titanic

上のコマンドを実行するとこんな感じ画面になり調査が始まります。
image.png

作業完了するとこんな感じで、Titanicの基本情報をベースとして、3種類のmdファイルが作成されます。
image.png

2. CLAUDE.mdの生成

3種のmdファイルと事前定義したフォーマットをもとに、Titanicに合わせたCLAUDE.mdをClaudeに生成させます。

/create-claude-md

実行中・・・
image.png

作成完了。
image.png

3. データのダウンロード

データセットのダウンロードもSlash Command一発です。

/download-dataset titanic

image.png

ClaudeがKaggle MCPを使ってダウンロードURLを取得し、data/raw 配下にファイルを準備してくれます。

4. EDAの実行

次はデータについて理解するために、EDAを行いましょう。モデリングの前の重要なプロセスです。

/eda

実行すると、ClaudeがEDAのnotebookを作ってくれます。

image.png

こんな感じの可視化ファイルも保存してくれます。
correlation_matrix.png

他にもあるので、包括的なEDAはやってくれている所感です。
image.png

5. ベースライン作成 (/baseline)

/baseline

上の、とこんな感じで、ベースラインの作成~実行までやってくれました。

image.png

まとめ

Claude CodeをKaggleで使用して、「必要な前提知識がない」「重要なコードを勝手に壊す」「定型作業の指示が面倒」といった壁にぶつかりました。

そこで今回、3つの整備アイデアを考えてみました。
こうした整備をしておくことで、面倒な作業は AI に任せつつ、より快適に、より楽しくKaggleに取り組めるようになるはずです。

今回作成したテンプレートが、みなさんのKaggleライフを少しでも快適にする助けになれば幸いです。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?