はじめに
データ分析において、EDA(Exploratory Data Analysis:探索的データ分析)は依然として成果を左右する重要なポイントだと考えています。一見突拍子もない発想に見えるアイデアも、実は精緻なEDAにより自然に発見されている、ということもままあります。例えば、『LLM Prompt Recovery』はlucrareaというmagicがありましたが、これはEDAやエラー分析によって発見されたものです。EDAの質によって大きく明暗がわかれた事例だと思います。
従来、EDAはコードの準備などが必要で、ある程度の労力を必要とするものでしたが、Claude CodeなどのAIエージェントの登場により、そのコストが大きく低減されました。この記事では、ポストClaude Code時代におけるEDAについてまとめます。
EDAの目標
EDAの目標は、データセットに関して、どのような質問をされてもすぐに回答できる状態に到達することと考えています。
例えば以下のような問いです。
- データセットの N 数はいくつか
- 説明変数と目的変数の関係性はどうか
- train / Public LB / Private LB で分布差は存在するか
- どの特徴量がタスクを支配しているか
など
データセットについての情報を頭にインストールした状態でこそ、タスクの解き方に向き合う事ができます。
ミクロ/マクロ、入力/出力
EDA を整理する上では、ミクロ/マクロと入力/取得の二軸を意識すると構造的に捉えやすくなります。
ミクロなEDAとは、生データを1レコード単位で眺めるようなイメージです。人間の直観は非常に優秀で、データを眺めるだけでも、多くの気付きを得ることができます。特にN数が少ない場合は、全件に目を通す事が良いと思います。N数が膨大な場合でも、代表的なデータを直接確認することは重要です。
マクロな EDA では、統計量・分布・相関図・可視化などを用い、データの概要を把握します。異常値、偏り、リークの兆候などはこのレイヤーで発見されることが多いです。
もう一つの観点として、入力データと出力データがあります。入力データのEDAは狭義のEDAであり、出力データのEDAはエラー分析と呼ばれます。入力データについては、疑問が無くなるまでとことんEDAを行います。出力データのエラー分析については、CV/LBなどのメトリクスと合わせて、モデルがどのような出力をしているか、あるいは誤っているかを確認することが重要と言えます。優秀なデータサイエンティストほど、エラー分析を丁寧にしている印象があります。
EDAのタイミング
データセットを受領してすぐ(≒コンペの場合は開始直後)に一般的な内容のEDA(要約統計量を確認する、散布図を描くなど)を行い、疑問を解消し続けます。モデリングを行うなどしている間に、新たな疑問が浮かぶ事があると思いますが、都度疑問の解消としてEDAやエラー分析をするべきです。
tonicさんがEDAに役立つMCPサーバを公開されています。こちらを利用することで単純に一般的な内容のEDAをAIエージェントに任せる場合よりも、自律的に踏み込んだ分析ができます。
@Taimo さんは、Claude CodeをKaggleで使いこなすための「環境整備」として、プロジェクトテンプレートを作成および公開されています。
すぐーさんは、「kaggle 実験管理術 v2.0 w/ claude code(レポジトリ公開)」というタイトルの記事を公開されています。実験フォルダを「Claude用」と「人間用」で分離する工夫がなされています。
以上3つの例は、ポストClaude Code時代のデータ分析の方向性を象徴する取り組みと考えています。
1EDA・1仮説
EDAを行う際は、仮説検証を目的とします。EDAと仮説が一対一対応している状態が自然です。従って、好みではありますが、ディレクトリ構成もeda/の中に1_〇〇, 2_〇〇, 3_〇〇のように、ナンバリングすると管理がしやすいです。サブディレクトリの中には、スクリプトと分析結果のアーティファクトと格納します。〇〇には仮説検証の内容が入ります。
Claude CodeなどのAIエージェントにEDAを行わせる際も、このようにサブディレクトリにスクリプト含めてまとめさせることで、分析内容の透明性が上がります。
まとめ
ポストClaude Code時代におけるEDAは軽い気持ちでどんどん行うべきというのがこの記事の結論です。
冒頭でもお話したとおり、ポストClaude CodeのEDAのコストは劇的に低減されました。そのため、とりあえず包括的なEDAをさせる、とりあえず疑問解消のためAIエージェントを走らせる、というように軽い気持ちでどんどんEDA行う事が良いと考えています。
一方で、AIに完全自律的にEDAを任せることは依然として難しく、分析者自身のEDAスキルが結果を左右するのは変わりません。
