基本
カテゴリ値は数値に変換すること
正の相関=ある値が高く(低く)なると、もう一方の値も高く(低く)なる傾向
負の相関=ある値が高く(低く)なると、もう一方の値が低く(高く)なる傾向
使用するライブラリ・関数
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")

