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

协方差矩阵和热力图

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

协方差矩阵和热力图

引用
CSDN
1.
https://blog.csdn.net/2201_75986638/article/details/144355191

协方差矩阵定义

协方差矩阵(Covariance Matrix)是一个方阵,用于描述多维数据中不同维度(或变量)之间的线性关系。协方差本质上衡量的是两个变量之间的关系和变化趋势。如果两个变量的协方差为正,意味着它们通常会一起增加或减少;如果协方差为负,说明一个变量增加时,另一个变量可能会减少;协方差接近零表示两个变量之间没有线性关系。

对于一个多维数据集,其中每个维度(特征)都是一个随机变量,协方差矩阵可以帮助我们理解这些变量之间的关系。协方差矩阵是对称的,且对角线上的元素表示每个变量的方差。

其中:

  • Cov(X,Y) 是随机变量 X 和 Y 之间的协方差。
  • n 是观测值的数量。
  • xi 和 yi 分别是 X 和 Y 的第 i 个观测值。
  • ˉxˉ 和 ˉyˉ 分别是 X 和 Y 的平均值。

协方差矩阵 Σ

其中:

  • Σ是一个 p×p 的矩阵,包含了 p 个随机变量 X1 ,X2 ,…,Xp 之间的协方差。
  • 对角线上的元素 Cov(Xi ,Xi ) 是变量 Xi 的方差。

这些公式在统计学中用于衡量两个变量之间的线性关系。协方差矩阵则提供了多个变量之间协方差的全面视图,常用于多元统计分析和机器学习中的数据预处理。

使用 Python 计算协方差矩阵

在Python中,使用NumPy或Pandas可以非常方便地计算协方差矩阵。这里提供两种常见的方法

  1. 使用NumPy计算协方差矩阵

这段代码首先导入了numpy库,然后创建了一个二维 NumPy 数组 X,形状为 3×2,表示 3 个样本和 2 个变量的数据集。 np.cov()方法计算了X中每一列的协方差矩阵,并将其存储在cov_matrix变量中。

参数rowvar=False 表示每一行代表一个变量,每一列代表一个观测值,如果不指定这个参数,默认每行是一个变量。

  1. 使用Pandas计算协方差矩阵

这段代码首先导入了pandas库,然后创建了一个包含两个变量 Var1 和 Var2 ,每列为一个变量的DataFrame 对象 .df。df.cov()方法计算了df中所有列的协方差矩阵,并将其存储在cov_matrix变量中。

协方差矩阵热力图

定义:

热力图是一种非常直观的数据可视化工具,用于以颜色的形式展示矩阵或二维表格中的数据关系和分布情况。通过热力图,不仅可以快速感知数据的大小,还可以洞察数据间的相关性、趋势及其整体分布。

具体来说,热力图将每个数据点的数值映射到颜色梯度上,通常采用从冷色调(如蓝色、绿色)到暖色调(如橙色、红色)的渐变来表示数据的强度和密度。数值越大,颜色越接近暖色;数值越小,颜色越接近冷色。

热力图的作用:

  1. 展示变量之间的关系

热力图通过颜色的对比,直观地揭示了不同变量间的关系,如协方差或相关性大小。例如,在协方差矩阵的热力图中,颜色的深浅可以清晰显示变量之间的线性关系强弱。

  1. 识别数据分布模式

通过颜色变化,可以快速识别数据中是否存在规律或异常点。例如,热力图可以显示某些区域是否密集或稀疏,有助于发现隐藏的分布模式。

  1. 简化复杂数据

热力图可以将庞大的矩阵或表格数据转化为视觉直观的信息,让分析者能够更轻松地理解数据。

热力图的特点:

  1. 颜色映射直观:热力图使用颜色梯度来表达数值大小,易于快速感知数据变化。冷暖色调的过渡使用户能一目了然地区分高值和低值。

  2. 支持高维数据展示:热力图能有效显示多变量之间的关系(如协方差矩阵)或空间分布(如地理热力图)。

  3. 对称性和结构性:在协方差矩阵等应用中,热力图常表现为对称矩阵的形式,体现变量间的对称关系。

  4. 高度灵活:热力图可以通过不同的颜色映射方案、注释方式、分隔线等进行定制,以适应多种数据分析需求。

热力图的应用场景

  1. 相关性分析

在统计学或机器学习中,协方差矩阵或相关系数矩阵的热力图常用于分析变量间的线性关系,以辅助特征选择和建模。

  1. 地理分布分析

在地理信息系统(GIS)中,热力图用于展示人口密度、交通流量、环境变化等区域分布。

  1. 业务数据监控

在商业数据分析中,热力图常用来监控 KPI 的表现,如网站流量、客户行为等。

  1. 生物信息学

用于基因表达数据分析,揭示基因之间的相关性或功能关系。

  1. 金融数据分析

用于分析股票、基金或其他金融产品之间的协同关系,帮助投资者优化投资组合。

绘制协方差矩阵热力图的方法

方法 1: 使用 Pandas 和 Matplotlib

利用 Pandas 计算协方差矩阵,使用 Matplotlib 进行基本可视化。

运行结果:

方法 2: 使用 Seaborn

Seaborn 提供更加灵活和美观的热力图功能,推荐用于协方差矩阵的可视化。

运行结果:

接下来对数据"医疗花费预测train.csv"进行热力图分析

1、读取数据

2、对数据进行预处理

数据可视化,归一化和标准化处理

运行结果:

热力图展示:

运行结果:

代码使用了 Seaborn 库来展示 train 数据集中各列之间的相关性。通过 train.corr() 方法,计算所有数值型列之间的成对相关系数,并生成一个相关系数矩阵。接着,使用 Seaborn 的 heatmap() 函数来可视化这个矩阵,其中颜色越浅表示相关系数越高,右侧的色标显示了颜色与数值之间的对应关系。通过热力图可以发现, charges 与 smoker 和 age 之间有较为显著的相关性,而与其他变量的关系则不明显。

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