【Python】相関関係のヒートマップを作る方法

Python
スポンサーリンク

Pandasの“background_gradient”を使えば、ヒートマップを表示できます。

corrでの相関係数の計算と組み合わせると便利です。

データセット

import pandas as pd
from sklearn.datasets import load_diabetes

data = load_diabetes()
df = pd.DataFrame(data["data"], columns = data["feature_names"])
df["target"] = data["target"]
df

今回はscikit-learnに入っている”load_diabetes”を使います。

“target”が糖尿病の指標です。

相関係数

df.corr()

corrで相関係数を計算できます。

“target”が糖尿病の指標なので、”bmi”が良く効いていますね。

background_gradient

df.corr().style.background_gradient()
# "jinja2がない"とエラーが出る場合 pip install jinja2 を実行

このように、”background_gradient”で相関係数のヒートマップを起こすことができます。

青色が濃いほど値が大きいことを示しますが、見づらいので調整してみましょう。

df.corr().style.background_gradient(cmap = "bwr", vmin = -1, vmax = 1)
cmap:カラーマップの種類
vmin:最小値
vmax:最大値

相関係数は-1~+1なので、この設定で最大の時に赤、最小の時に青になります。

もし”target”に関連する相関係数だけ見たいときは、以下のように書きます。

df.corr()[["target"]].T.style.background_gradient(cmap = "bwr", vmin = -1, vmax = 1)

まとめ:ヒートマップを使ってみよう

今回はヒートマップの作り方を解説しました。

慣れると1分で作れるので、データ分析の初手として使えるようになりたいですね。

>>【無料説明会あり】キカガクのAI人材育成コースで勉強する

コメント

タイトルとURLをコピーしました