您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python入门需要掌握绘制热图展示的相关系数
在数据分析和机器学习领域,理解变量之间的相关性是至关重要的。相关系数矩阵的热图(Heatmap)是一种直观展示数据关系的可视化工具。本文将介绍如何使用Python中的`pandas`、`numpy`和`seaborn`库计算并绘制相关系数热图。
## 一、相关系数简介
相关系数(Correlation Coefficient)用于衡量两个变量之间的线性关系强度,取值范围在-1到1之间:
- **1** 表示完全正相关
- **-1** 表示完全负相关
- **0** 表示无线性相关
常用的皮尔逊相关系数公式为:
$$
r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2 \sum (y_i - \bar{y})^2}}
$$
## 二、准备工作
### 安装必要库
```bash
pip install pandas numpy seaborn matplotlib
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
我们创建一个包含4个特征的DataFrame:
np.random.seed(42)
data = pd.DataFrame({
'A': np.random.normal(0, 1, 100),
'B': np.random.normal(0, 1, 100) * 0.5 + 0.3,
'C': np.random.rand(100) * 2 - 1,
'D': np.linspace(0, 10, 100) + np.random.normal(0, 0.5, 100)
})
使用pandas的corr()
方法:
corr_matrix = data.corr()
print(corr_matrix)
输出示例:
A B C D
A 1.000000 0.287432 -0.029591 -0.008834
B 0.287432 1.000000 -0.010402 0.028693
C -0.029591 -0.010402 1.000000 -0.006512
D -0.008834 0.028693 -0.006512 1.000000
使用seaborn的heatmap()
函数:
plt.figure(figsize=(8, 6))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title("Correlation Heatmap")
plt.show()
参数说明:
- annot=True
:显示数值
- cmap
:颜色映射
- vmin/vmax
:颜色范围(默认-1到1)
sns.heatmap(
corr_matrix,
annot=True,
fmt=".2f", # 数值格式
cmap="RdYlGn",
center=0,
linewidths=0.5,
cbar_kws={"shrink": 0.8}
)
mask = np.triu(np.ones_like(corr_matrix, dtype=bool))
sns.heatmap(corr_matrix, mask=mask, annot=True)
sns.clustermap(corr_matrix, method="ward", cmap="viridis")
以经典的鸢尾花数据集为例:
iris = sns.load_dataset('iris')
corr = iris.corr()
sns.heatmap(corr, annot=True, cmap='Spectral')
plt.title("Iris Feature Correlation")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data.corr(method='pearson', min_periods=10)
sns.heatmap(..., annot=False) # 关闭数值标注
掌握相关系数热图的绘制能帮助你: - 快速发现数据中的关键关系 - 识别潜在的多重共线性问题 - 为特征选择提供可视化依据
进阶学习建议: - 尝试不同相关系数(斯皮尔曼、肯德尔) - 结合pairplot等其他可视化方法 - 学习Plotly制作交互式热图
完整代码示例可参考:
# 完整示例
import seaborn as sns
iris = sns.load_dataset('iris')
sns.heatmap(iris.corr(), annot=True, cmap='coolwarm')
plt.show()
通过本文的学习,你应该已经掌握了用Python绘制相关系数热图的核心方法。在实际项目中灵活运用这一技能,将使你的数据分析工作更加高效专业。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。