Menu
CoddyTech

相関ヒートマップ

CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 32/64。

20個の特徴量からなる行列は、数字が並ぶ壁のようです。ヒートマップでは各セルに色を付けるため、強い相関を持つペアがひと目でわかります。映画館の8日間:

Cinema Correlationsというタイトルの4×4のヒートマップ。-1から1までのカラーバーがある。チケットとポップコーンは一緒に濃い赤色で、temp_cは両方に対して濃い青色、スタッフの行は淡い色

このコードで描画できます:

cinema = pd.DataFrame({
    "tickets": [120, 340, 210, 410, 180, 290, 380, 150],
    "popcorn": [70, 150, 100, 200, 95, 120, 170, 60],
    "temp_c": [24, 12, 15, 9, 20, 19, 11, 22],
    "staff": [6, 5, 8, 7, 5, 6, 6, 8],
})
corr = cinema.corr()
fig, ax = plt.subplots()
im = ax.imshow(corr, cmap="coolwarm", vmin=-1, vmax=1)
fig.colorbar(im)
ax.set_xticks(range(4), corr.columns)
ax.set_yticks(range(4), corr.columns)
ax.set_title("Cinema Correlations")
plt.show()

vmin=-1, vmax=1で色の範囲を固定します。赤は1、白は0、青は-1です。fig.colorbar(im)で凡例を追加し、set_xticks(positions, labels)でセルに名前を付けます。

チケットとポップコーンは一緒に赤く輝き、暖かい日はその両方に対して青く表示されます。スタッフの配置はほとんど関係ありません。

challenge icon

チャレンジ

中級

スマートウォッチは、watch.csvに30日分のデータを記録しました。テキスト列のweekdayと、数値列が5つあります。

  1. 数値列の相関行列を計算します。
  2. -1から1の範囲で、カラーバー付きのcoolwarmヒートマップとして描画します。
  3. 横軸と縦軸の目盛りに列名を付け、タイトルをWatch Dataにして表示します。

プログラムは何も出力しません。別の所有者の3つの列では、グラフは次のようになります。

steps、sleep_h、stressを目盛りラベルにした、タイトルがWatch Dataの3×3ヒートマップ。-1から1のカラーバー付き。対角線は赤、sleep_hとstressは濃い青、stepsとsleep_hは薄い赤

自分で試してみよう

import pandas as pd
import matplotlib.pyplot as plt

watch = pd.read_csv("watch.csv")

# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

機械学習のための統計のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ