🕌

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

に公開

3行要約

  • KaggleコンペでClaude Codeを使いやすくするための設定を整理した
  • コンテキスト整備・プロジェクトルール整備・Slashコマンド整備の3つを軸にテンプレート化
  • 初動セットアップや単純作業をClaudeに任せることで、人間はより快適にKaggleに集中できるようになる

はじめに:なぜClaude Codeの環境整備が必要なのか

みなさん、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には「明示的な指示がない限り編集禁止」とルール化する
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コマンドの整備

Claude Code では、よく使う定型作業を Slash コマンドとして登録できます。
毎回プロンプトで細かく指示を書くのは手間なので、頻出タスクはコマンド化して一発実行できるようにしています。

例えば、

  • /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
    • コンペのタスクとデータ形式に合わせて、学習・推論のベースラインを自動生成

を整備することで、Kaggleコンペのためのセットアップや調査、EDAなどのプロンプトを書くのが面倒な作業を最小工数で進められるようになります。

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も以下のSlashコマンドで実行します。

/eda

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

image.png

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

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

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

次は、ベースラインのコマンドを実行します。

/baseline

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

image.png

まとめ

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

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

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

Discussion