【AI概念】协方差(covariance)与相关系数(correlation)是什麽?有什么区别?在机器学习中担任什么角色?|协方差矩阵、马氏距离、归一化|主成分分析PCA、代码实现与可视化、实际应用

大家好,我是爱酱。本篇將會系统讲解协方差(covariance,又称共变异数)与相关系数(correlation coefficient,或简称correlation)的定义、公式、几何意义、实际案例和应用场景。内容适合初学者和进阶读者,分步解释,配合公式和可视化示例。

注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!


一、协方差(Covariance)与相关系数(Correlation)简单介紹

名称定义

  • 协方差:同時亦被称為“共变异数”,英文为covariance,常用符号为$\mathrm{cov}(X, Y)$$\sigma(X, Y)$

  • 相关系数:常被称为“相关系数”,英文为correlation coefficient,简称 correlation,常用符号为$r$$\rho$

协方差与相关系数在机器学习中的作用

要学习这两概念,最好先了解他们在机器学习中担任什么样的角色,有什么用途。

  1. 特征关系分析与特征选择
    • 协方差和相关系数用于衡量特征之间的线性关系

    • 在特征选择阶段,相关系数常用于筛除高度相关(冗余)的特征减少多重共线性,提高模型泛化能力。例如,若两个特征相关系数$r > 0.9$,通常只保留一个。

  2. 降维与特征提取
  3. 异常检测与数据探索
    • 通过分析协方差和相关系数,可以发现异常点或异常关系,辅助异常检测、数据清洗等。

    • 例如,利用协方差矩阵计算马氏距离(Mahalanobis Distance),可检测多变量异常点。

  4. 回归与建模
    • 在线性回归中,协方差用于衡量自变量与因变量的线性关系强度,相关系数越高,线性模型拟合效果通常越好。

    • 在高维数据建模时,相关系数也用于判断特征之间的独立性,防止模型过拟合。

  5. 深度学习中的应用
    • 在卷积神经网络(CNN)、循环神经网络(RNN)等结构中,协方差和相关性用于捕捉空间或时序特征间的依赖关系。

    • 注意力机制(Attention)本质上也是对相关性的一种建模

  6. 简单例子
    • 特征选择:假设有两个特征“身高”和“腿长”,相关系数高达0.95,说明它们高度冗余,建模时可以只保留一个

    • PCA降维:用协方差矩阵分解得到的主成分,可以将高维图像数据压缩到低维,提升计算效率和可视化效果。

    • 异常检测:利用协方差矩阵和马氏距离,可以发现与其他样本差异极大的异常点


二、协方差的定义与直观意义

1. 协方差的数学定义

协方差衡量两个随机变量之间的线性相关程度,定义如下:

\mathrm{cov}(X, Y) = E\left[(X - E[X])(Y - E[Y])\right]

  • $E[X]$$E[Y]$分别是$X$$Y$期望值(均值)

  • 如果是样本协方差,常用无偏估计

    \mathrm{cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^n (x_i - \overline{x})(y_i - \overline{y})

2. 协方差的几何/统计意义

  • 正协方差$X$大于均值时$Y$也倾向于大于均值,$X$$Y$同向变化(正相关)(Possitive Correlation)。

  • 负协方差$X$大于均值时$Y$倾向于小于均值,$X$$Y$反向变化(负相关)(Negative Correlation)。

  • 协方差为零$X$$Y$之间没有线性关系(不相关)。

协方差值的大小受变量单位和尺度影响,不便于直接比较不同变量间的相关性


三、相关系数的定义与归一化

1. 相关系数的数学定义

相关系数是对协方差的归一化(Normalization)处理,消除了单位影响,取值范围为$[-1, 1]$

r_{XY} = \frac{\mathrm{cov}(X, Y)}{\sigma_X \sigma_Y}

  • $\sigma_X$$\sigma_Y$分别为$X$$Y$的标准差。

  • $r_{XY}=1$表示完全正相关,$r_{XY}=-1$表示完全负相关,$r_{XY}=0$表示不相关。

2. 相关系数的几何意义

  • 相关系数实际上等价于两个中心化向量的余弦相似度(cosine similarity)

    r_{XY} = \cos\theta = \frac{\vec{x}\cdot\vec{y}}{||\vec{x}||\,||\vec{y}||}

  • 反映了两个变量的“方向一致性”,与变量的绝对大小无关


四、实际案例与可视化

1. 案例说明

假设有甲、乙两人对6本书的评分如下

ABCDEF
433053
424044
  • 甲的评分向量$\vec{x} = (4,3,3,0,5,3)$

  • 乙的评分向量$\vec{y} = (4,2,4,0,4,4)$

协方差计算:

\mathrm{cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^n (x_i - \overline{x})(y_i - \overline{y})

相关系数计算:

r_{XY} = \frac{\sum_{i=1}^n (x_i - \overline{x})(y_i - \overline{y})}{\sqrt{\sum_{i=1}^n (x_i - \overline{x})^2} \sqrt{\sum_{i=1}^n (y_i - \overline{y})^2}}

  • 结果$r_{XY} \approx 0.86$,说明甲乙评分高度正相关。


五、协方差矩阵与多变量相关性

1. 协方差矩阵的定义

对于$d$维特征的多变量数据,协方差矩阵(Covariance Matrix)是一个$d \times d$的对称矩阵,定义如下:

S = \begin{bmatrix} \mathrm{cov}(X_1, X_1) & \mathrm{cov}(X_1, X_2) & \cdots & \mathrm{cov}(X_1, X_d) \\ \mathrm{cov}(X_2, X_1) & \mathrm{cov}(X_2, X_2) & \cdots & \mathrm{cov}(X_2, X_d) \\ \vdots & \vdots & \ddots & \vdots \\ \mathrm{cov}(X_d, X_1) & \mathrm{cov}(X_d, X_2) & \cdots & \mathrm{cov}(X_d, X_d) \end{bmatrix}

  • 对角线元素是各变量的方差,非对角线元素是变量间的协方差。

2. 协方差矩阵的意义

  • 协方差矩阵描述了多维数据各特征之间的线性相关性结构

  • PCA(主成分分析)等算法中,协方差矩阵的特征向量就是主成分方向特征值表示这些方向上的方差大小


六、Python代码实现与可视化

1. 协方差与相关系数的计算

import numpy as np

# 甲、乙评分
x = np.array([4, 3, 3, 0, 5, 3])
y = np.array([4, 2, 4, 0, 4, 4])

# 协方差
cov = np.cov(x, y, ddof=1)[0, 1]
print("协方差:", cov)

# 相关系数
corr = np.corrcoef(x, y)[0, 1]
print("相关系数:", corr)

 

2. 协方差矩阵的计算与可视化

假设有三维特征数据:

import matplotlib.pyplot as plt
import numpy as np

# 甲、乙评分
x = np.array([4, 3, 3, 0, 5, 3])
y = np.array([4, 2, 4, 0, 4, 4])

# 协方差
cov = np.cov(x, y, ddof=1)[0, 1]
print("协方差:", cov)

# 相关系数
corr = np.corrcoef(x, y)[0, 1]
print("相关系数:", corr)

# 三维数据
data = np.array([
    [4, 3, 5],
    [3, 2, 4],
    [3, 4, 3],
    [0, 0, 2],
    [5, 4, 5],
    [3, 4, 4]
])
# 协方差矩阵
cov_matrix = np.cov(data.T)
print("协方差矩阵:\n", cov_matrix)

# 可视化热力图
plt.imshow(cov_matrix, cmap='coolwarm', interpolation='nearest')
plt.colorbar()
plt.title("Covariance Matrix Heatmap")
plt.xlabel("Feature")
plt.ylabel("Feature")
plt.show()


七、协方差与相关系数的实际应用

1. 数据分析与特征选择

  • 协方差和相关系数常用于判断特征之间的冗余性,避免多重共线性。

  • 高相关的特征可能需要降维或去除,提升模型稳定性。

2. 主成分分析(PCA)

  • PCA的核心就是对协方差矩阵做特征值分解,找到数据方差最大的主方向,实现降维和特征压缩。

3. 金融、物理、信号处理等领域

  • 协方差和相关系数广泛用于股票收益分析、风险管理、信号相关性检测等场景。


八、工程建议与优缺点

工程建议:

  • 计算协方差和相关系数前,建议对数据做中心化和标准化。

  • 对于非线性关系,相关系数可能无法反映全部依赖关系,可考虑互信息等更复杂指标。

优点:

  • 计算简单,直观反映变量间线性关系。

  • 适用于特征选择、降维、数据探索等多种场景。

缺点:

  • 仅能反映线性关系,无法捕捉非线性依赖。

  • 对异常值敏感。


九、总结

协方差和相关系数是统计学和数据分析中最基本的相关性度量工具。协方差反映变量间的线性变化趋势,相关系数则标准化后便于不同变量间的比较。它们不仅是数据探索、特征选择的常用工具,也是PCA等高级算法的理论基础。理解协方差和相关系数的本质,有助于更好地把握数据结构和建模思路。


谢谢你看到这里,你们的每个赞、收藏跟转发都是我继续分享的动力

如需进一步案例、代码实现或与其他聚类算法对比,欢迎留言交流!我是爱酱,我们下次再见,谢谢收看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值