相关性热力图
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 32 课,共 64 课。
包含 20 个特征的矩阵看起来像一堵数字墙。热力图会为每个单元格着色,让相关性强的特征对一目了然。某家电影院的 8 天数据:
这段代码会绘制出它:
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) 会为单元格命名。
门票和爆米花同时呈红色;温暖的日子与两者相比都呈蓝色。人员配置几乎无关紧要。
挑战
中等智能手表记录了 30 天的数据,保存在 watch.csv 中:一列文本 weekday 和五列数字。
- 计算数字列的相关矩阵。
- 将它绘制成从 -1 到 1 的
coolwarm热力图,并添加颜色条。 - 用列名标记横轴和纵轴的刻度,将标题设为
Watch Data,然后显示图表。
你的程序不会打印任何内容。对于另一位用户的三列数据,图表如下所示:
亲手试试
import pandas as pd
import matplotlib.pyplot as plt
watch = pd.read_csv("watch.csv")
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器