EDA の進め方
目的変数の理解から欠損・型・相関の確認、データリークの兆候発見まで、EDA の流れを体系的に学びます。
EDA とは#
EDA(探索的データ分析)は、モデルを作る前にデータを観察し、 前処理・特徴量・検証設計の方針を立てる工程です。 やみくもにグラフを描くのではなく、目的を持って順に確認していきます。
import pandas as pd
df = pd.read_csv("/kaggle/input/titanic/train.csv")1. 目的変数を理解する#
まず予測対象(目的変数)の性質を把握します。分類なら**クラスの偏り(不均衡)**が重要です。
df["Survived"].value_counts(normalize=True) # クラス比率クラスが偏っていると、正解率(accuracy)では性能を見誤ります。評価指標の選択にも影響します。
2. 欠損・型・基本統計を確認する#
df.info() # 型と非欠損数
df.isnull().mean().sort_values(ascending=False) # 列ごとの欠損率
df.describe(include="all") # 数値・カテゴリ両方の要約型が想定と違う列(数値が文字列になっている等)や、極端な最大・最小値をここで見つけます。
3. 特徴量と目的変数の関係を見る#
# 数値特徴:目的変数で層別した分布
df.groupby("Survived")["Fare"].median()
# カテゴリ特徴:水準ごとの目的変数平均
df.groupby("Pclass")["Survived"].mean()「効きそうな特徴」の当たりをつけ、次トラックの特徴量エンジニアリングへつなげます。
4. データリークの兆候に気づく#
注意
単一の特徴だけで目的変数をほぼ完璧に説明できる場合、データリークを疑います。 「本来は予測時点で手に入らない情報」が紛れ込むと、検証スコアは高いのに本番で崩れます。 ID 列・時刻・集計済みの値などは要注意です。
リークを見抜くには、「その特徴は予測したい瞬間に実際に存在するか?」を一つずつ問うのが有効です。
EDA から検証設計へ#
EDA で分かったデータの構造(時系列性・グループ構造・不均衡)は、 そのまま交差検証の分け方に反映します。 データの性質に合わない検証は、見かけのスコアを当てにできなくします。
ヒント
EDA の発見は Markdown セルにメモしておきましょう。「なぜこの前処理をするのか」の根拠になり、 後から自分やチームが方針を追えるようになります。
理解度チェック#
次のステップ#
次は、EDA で見つかる代表的な課題である欠損値・外れ値の検出と対処方針を詳しく学びます。