目次
相関関係の可視化の目的
データセットの特徴量間の相関関係(correlation) を可視化することには、以下のような重要な目的があります。
1. 目的変数(y)と説明変数の関係を確認
- 目的変数(y)と強く相関する特徴量を発見
- 相関係数が ±0.5以上 の特徴量は、モデルにとって重要な説明変数となる可能性が高い。
- 例:
x7
(0.69) のように相関が強い変数は、回帰モデルに影響を与える可能性がある。
- 相関が低い特徴量を削除する判断
- 相関係数が ±0.1 以下の特徴量は、目的変数に対して影響がほぼない可能性がある。
- 不要な特徴量を削除することで、モデルの精度が向上し、計算コストも削減できる。
2. 多重共線性(Multicollinearity)の検出
- 多重共線性とは?
- ある説明変数(x1〜x13)が他の説明変数と強く相関している場合、モデルの学習に悪影響を与えることがある。
- 例えば、
x10
とx12
の相関が 0.54 など、特徴量間で高い相関がある場合、モデルの安定性に悪影響を及ぼすことがある。
- 対策
- VIF(Variance Inflation Factor)を計算 し、多重共線性のある変数を削除
from statsmodels.stats.outliers_influence import variance_inflation_factor vif_data = pd.DataFrame() vif_data["feature"] = X.columns vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])] print(vif_data)
- VIFが 10以上 の変数を削除すると、モデルの安定性が向上する。
3. 特徴量エンジニアリングのヒントを得る
- もし相関が強い特徴量同士が存在する場合、それらを組み合わせた新しい特徴量を作成することで、モデルの精度を向上させることができる。
- 例: x7とx10が高い相関を持つ場合、新しい変数
x_new = x7 * x10
を作成することで、モデルの説明力を高めることができる。
4. 正則化(Lasso / Ridge 回帰)を適用する判断
- Lasso回帰(L1正則化) を使うと、多重共線性の影響を受けにくくなる。
- Ridge回帰(L2正則化) を使うと、強い相関を持つ変数の影響を抑えることができる。
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=1.0)
ridge.fit(X_train, y_train)
相関関係が強すぎる場合、通常の線形回帰よりも Ridge や Lasso の方が適している。
5. データの前処理(標準化やスケーリング)の必要性を判断
- 相関行列を確認すると、一部の変数が非常に大きな値を持つ可能性がある。
- 例えば、
x10
の値の範囲が 100-700 である一方、x4
の範囲が 0.1-1.0 だった場合、スケールの違いが影響を及ぼす。 - 標準化(StandardScaler)や正規化(MinMaxScaler)を適用すべきか判断できる。
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
6. 可視化による相関関係の把握
相関行列の数値を眺めるだけでは理解しにくいこともあるため、ヒートマップを用いることで、相関の強い・弱い関係を視覚的に確認できる。
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
sns.heatmap(df.corr(), annot=True, cmap="coolwarm", fmt=".2f")
plt.title("Feature Correlation Heatmap")
plt.show()
- 青色が正の相関、赤色が負の相関 を示し、色の濃淡で強弱を判別できる。
まとめ
相関関係の分析でできること | 具体的な活用方法 |
---|---|
目的変数(y)と説明変数の関連性を確認 | 相関が強い変数を選択し、モデルに活用 |
多重共線性の検出 | 相関が強すぎる変数を削除(VIFを計算) |
特徴量エンジニアリング | 相関が高い変数の組み合わせを作成 |
正則化の必要性を判断 | Lasso, Ridge を導入 |
データの前処理を判断 | 標準化やスケーリングの必要性を確認 |
可視化による直感的な理解 | ヒートマップを用いる |
つまり、相関関係の可視化は、特徴量選択・データ前処理・モデルの最適化に不可欠なステップ となります!