问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据可视化 | 一文了解什么是相关性分析热力图

创作时间:
作者:
@小白创作中心

数据可视化 | 一文了解什么是相关性分析热力图

引用
CSDN
1.
https://blog.csdn.net/weixin_55633225/article/details/143155087

相关性分析热力图是数据科学领域中一种重要的可视化工具,它能够直观地展示多个变量之间的相关性。本文将从相关性的基本概念出发,详细介绍如何理解和绘制相关性热力图,并通过Python代码实例进行演示。

Part1 引言

相关性是统计学中的一个基本概念,用于描述两个或多个变量之间的关系和相互影响。具体来说,相关性衡量的是当一个变量发生变化时,另一个变量如何随之变化。相关性可以帮助我们理解数据中的模式和趋势,从而为进一步的分析和决策提供依据。

从类型上来说,相关性分为三种:

  1. 正相关(Positive Correlation):当一个变量增加时,另一个变量也随之增加,这种关系称为正相关。例如,身高和体重通常呈正相关关系。
  2. 负相关(Negative Correlation):当一个变量增加时,另一个变量减少,这种关系称为负相关。例如,汽车的行驶速度和到达目的地所需的时间通常呈负相关关系。
  3. 零相关(No Correlation):当两个变量之间没有明显的线性关系时,这种关系称为零相关。例如,人的鞋码和智商之间通常没有显著的相关性。

相关性热力图是一种数据可视化工具,用于展示多个变量之间的相关性。它通过颜色的深浅和变化来直观地表示不同变量之间的相关程度,使得复杂的数据关系一目了然。相关性热力图在数据分析、统计学和机器学习中非常有用,能够帮助我们快速识别数据中的模式和趋势,从而为进一步分析提供指导。

本文将分享如何绘制相关性热力图以及如何理解相关性热力图。

Part2 如何理解相关性热力图

下图是一个典型的相关性热力图(使用 Seaborn 库绘制)。

该相关性热力图描述的是 California Housing 数据集各个字段的相关性,该数据集来源于1990年美国加利福尼亚州的人口普查数据。数据集中包含了多个街区的住房特征和人口统计信息。具体字段包括:

  1. longitude:房屋位置经度
  2. latitude:房屋位置纬度
  3. housingMedianAge:街区中房屋的中位年龄。
  4. totalRooms:街区中所有房屋的总房间数。
  5. totalBedrooms:街区中所有房屋的总卧室数。
  6. population:街区的人口总数。
  7. households:街区的家庭总数。
  8. medianIncome:街区的中位收入(以万美元为单位)。
  9. medianHouseValue:街区的中位房价(以美元为单位)。

我们从相关性热力图中随便选出一个值,如下图所示:

通过上图可知,选中的值为 0.92,背景颜色为较深的红色,同时该点横轴和纵轴对应的标签分别是 totalRooms 和 households,这表明 California Housing 数据集中的 totalRooms 与 households 两个字段的相关系数为 0.92。

相关系数是一个度量两个变量之间关系强弱和方向的统计量,数值一般在区间 -1 ~ 1 之间,相关系数的绝对值越大,说明两个变量的相关性越高,如果相关系数为正,说明呈现正相关关系,反之则呈现负相关关系,越接近 0,说明相关性越低,为零则说明两变量基本没有相关性。为了让大家一目了然地看到相关性分布,不同大小的相关系数被渲染了不同的颜色,通常暖色(图中为红色)代表正相关,冷色(图中为蓝色)代表负相关。同时由于横轴和纵轴上的标签是完全一样的,所以会存在横轴纵轴两个标签相同时,相关系数为 1,所以图中对角线上的相关系数全部为 1,且对角线两侧内容是沿着对角线对称的。

Part3 如何绘制热力图

相关性热力图虽然是一种比较高级的数据可视化图形,但制作起来却非常容易,使用 Seaborn 库就可以通过几行简单的代码完成。下面是制作相关性热力图的 Python 代码:

## 第一步:读取下载得到的 California Housing 数据集
import pandas as pd
# 读取 .domain 文件以获取列名
with open('./CaliforniaHousing/cal_housing.domain') as f:
    columns = [line.split(':')[0] for line in f.readlines()]
# 读取 .data 文件并指定列名
data = pd.read_csv('./CaliforniaHousing/cal_housing.data', header=None, names=columns)
# 查看前几行数据
data.head()
## 第二步:绘制相关性热力图
# 导入需要用到的数据可视化第三方库,如未安装则需要先安装
import seaborn as sns
import matplotlib.pyplot as plt
# 计算相关系数矩阵
corr_matrix = data.corr()
# 设置绘图尺寸和清晰度
plt.figure(figsize=(9, 6), dpi=300)
# 使用seaborn绘制热力图
sns.heatmap(corr_matrix, 
            annot=True, 
            cmap='coolwarm', 
            vmin=-1, 
            vmax=1, 
            center=0)
# 添加标题
plt.title('Correlation Heatmap of California Housing Dataset')
# 显示图形
plt.show()

使用以上代码就可以得到上一节中展示的相关性热力图。

Part4 总结

💡 本文介绍了数据分析中一种常用的高级数据可视化图形——相关性热力图,它可以帮助我们快速了解数据中的变量相关性,在回归分析中十分重要。相关性热力图的痛点在于,首次接触这种图形的人可能不太容易看懂,需要有人帮助解释才会更加容易理解,而这正是推送此文的目的,希望这篇文章能对大家有所帮助。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号