はじめに
この記事ではkaggleなどのコンペでどのようにEDAを進めていくべきかをまとめてみました。
このEDAでどこまで深くデータを理解できるかで、最終的な勝敗が決まってしまうこともあるほどEDAは重要です。
何を確認すべきか・図示したグラフや表について何に注目すべきか・結果の基づいてどのような処理をすべきかという観点で書いていこうと思います
ステップ1 データの全体像を把握する
まずはデータの中にどのような変数があるのか、その変数がどういうものかといったことを把握する必要があります。
pandasで読み取ったデータに対して、.describe()や.info()を活用するといいです。
各変数の大まかな分布に関する数値的情報や、変数の種類(数値かカテゴリか)、欠損値がどのデータにどれくらいあるかを把握できます。
ステップ2 各変数の分布を確認(単変量解析)
- 数値データ
数値データについてはplt.hist()などでヒストグラムを使うといいです。 - カテゴリデータ
sns.countplot()でヒストグラムを作ります。
ステップ3 各説明変数と目的変数の関係を確認(2変量解析)
- 数値データvs目的変数
sns.kdeplot()を使ってカーネル密度推定グラフを描きます。 - カテゴリデータvs目的変数
各カテゴリごとの目的変数率を、
.groupby(cat_col)['目的変数'].mean().reset_index()
で計算し、sns.barplot()で各カテゴリごとの目的変数比率の棒グラフを作成します。
おわりに
まだ勉強中なので逐次更新していく予定です。