基本
カテゴリ値は数値に変換すること
正の相関=ある値が高く(低く)なると、もう一方の値も高く(低く)なる傾向
負の相関=ある値が高く(低く)なると、もう一方の値が低く(高く)なる傾向
使用するライブラリ・関数
pandas.corr() pandas.style#builtin-styles
seaborn.heatmap()
matplotlib.pyplot
参照サイト
kaggle Titanic – Machine Learning from Disaster
note.nkmk.me pandas.DataFrameの各列間の相関係数を算出、ヒートマップで可視化
Hatena Blog pandasのstyleでテーブル出力をわかりやすくする
数値カラムのみ
# IDに相当するカラムをドロップ df1 = df.drop("PassengerId",axis=1).select_dtypes([int,float]) # 相関係数を算出 df_corr1 = df1.corr() # ヒートマップを描画 plt.figure() sns.heatmap(df_corr1, cmap="YlGnBu", annot=True, fmt=".1f", square=True) plt.title('correspondence') plt.show() # 相関係数マトリックス df_corr1.style.highlight_max(color="gray")
数値カラム+カテゴリ値カラム(LE処理)
# 結合先 df2 を事前作成 df2 = df1 # カテゴリ値カラムをラベルエンコーディング df1_obj = df1.select_dtypes(include="O") from sklearn.preprocessing import LabelEncoder le = LabelEncoder() col_name = df1_obj.columns for e in col_name: df2[e] = le.fit_transform(df1_obj[e]) # ヒートマップを描画 df_corr2 = df2.corr() plt.figure() sns.heatmap(df_corr2, cmap="YlGnBu", annot=True, fmt=".1f", square=True) plt.title('correspondence') plt.show() # 相関係数マトリックス df_corr2.style.highlight_max(color="gray")