用 Python 做热力图分析:快速发现数据相关性
一、前言
在数据分析中,我们经常需要快速了解特征之间的关系:
-
哪些变量正相关?
-
哪些变量负相关?
-
哪些变量几乎不相关?
热力图(Heatmap)是可视化相关性的利器,能让数据特征之间的联系一目了然。
二、热力图简介
热力图是一种二维数据可视化方法,
通过颜色深浅表示数值大小或关系强弱。
在数据分析中,热力图常用于:
-
📊 相关性矩阵可视化
-
🔍 缺失值分布分析
-
💡 特征工程与特征选择参考
三、准备数据
我们以鸢尾花数据集为例:
import seaborn as sns import pandas as pd df = sns.load_dataset('iris') df.head()
数据包含四个数值特征:sepal_length, sepal_width, petal_length, petal_width。
四、计算相关性矩阵
corr = df.corr() print(corr)
输出示例:
| sepal_length | sepal_width | petal_length | petal_width | |
|---|---|---|---|---|
| sepal_length | 1.00 | -0.12 | 0.87 | 0.82 |
| sepal_width | -0.12 | 1.00 | -0.42 | -0.36 |
| petal_length | 0.87 | -0.42 | 1.00 | 0.96 |
| petal_width | 0.82 | -0.36 | 0.96 | 1.00 |
五、绘制热力图
import matplotlib.pyplot as plt plt.figure(figsize=(8,6)) sns.heatmap(corr, annot=True, cmap='coolwarm', fmt=".2f") plt.title('特征相关性热力图') plt.show()
-
颜色深浅表示相关性强弱
-
annot=True显示具体数值 -
正相关为暖色,负相关为冷色
六、分析热力图结果
从图中可以观察到:
-
petal_length与petal_width高度正相关(0.96) -
sepal_width与其他特征相关性较低 -
可用于后续特征选择或降维分析
七、热力图在实际场景中的应用
-
💹 金融领域:分析股票指标或风险因素的相关性
-
🛍️ 电商数据:分析用户行为特征之间的关系
-
🧪 科研实验:变量间相关性可视化
-
🧠 机器学习特征工程:挑选高相关或低相关特征
热力图让数据探索直观且高效,是EDA中必备工具。
八、进阶应用
-
🔹 缺失值可视化
sns.heatmap(df.isnull(), cbar=False, cmap='viridis') plt.title('缺失值分布热力图') plt.show()
-
🔹 聚类相关性热力图:可以先对变量或样本进行聚类,再绘制热力图,观察特征组合模式。
更多推荐


所有评论(0)