Menu
CoddyTech

相关性热力图

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 32 课,共 64 课。

包含 20 个特征的矩阵看起来像一堵数字墙。热力图会为每个单元格着色,让相关性强的特征对一目了然。某家电影院的 8 天数据:

标题为 Cinema Correlations 的 4 × 4 热力图,配有从 -1 到 1 的颜色条。Tickets 和 popcorn 同为深红色,temp_c 与它们都呈深蓝色,staff 这一行颜色较浅

这段代码会绘制出它:

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

挑战

中等

智能手表记录了 30 天的数据,保存在 watch.csv 中:一列文本 weekday 和五列数字。

  1. 计算数字列的相关矩阵。
  2. 将它绘制成从 -1 到 1 的 coolwarm 热力图,并添加颜色条。
  3. 用列名标记横轴和纵轴的刻度,将标题设为 Watch Data,然后显示图表。

你的程序不会打印任何内容。对于另一位用户的三列数据,图表如下所示:

标题为 Watch Data 的 3×3 热力图,刻度标签为 steps、sleep_h 和 stress,并带有从 -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 在线编译器