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:最大値
vmin:最小値
vmax:最大値
相関係数は-1~+1なので、この設定で最大の時に赤、最小の時に青になります。
もし”target”に関連する相関係数だけ見たいときは、以下のように書きます。
df.corr()[["target"]].T.style.background_gradient(cmap = "bwr", vmin = -1, vmax = 1)

まとめ:ヒートマップを使ってみよう
今回はヒートマップの作り方を解説しました。
慣れると1分で作れるので、データ分析の初手として使えるようになりたいですね。
コメント