矩阵运算

365上怎么买比分 🖌️ 2025-07-01 19:53:35 🎨 admin 👁️ 4076 ❤️ 861
矩阵运算

1. 协方差矩阵定义

在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度。

参考: 带你了解什么是Covariance Matrix协方差矩阵 - 知乎

2. 协方差矩阵计算过程

将输入数据A进行中心化处理得到A'。即通过减去每个维度的平均值来实现中心化。

注意:平均值的计算有两种方式,按行计算(如numpy)和按列计算(如matlab),两者结果是不一样的,但原理是一样的,本文采用按行计算平均值为例。按列计算均值(每一行是一个observation(样本),那么每一列就是一个随机变量(特征))的一个实例:协方差矩阵计算方法_如何算瞬时协方差矩阵-CSDN博客 对于按行计算方式:协方差矩阵等于去中心化后的数据A'乘以A'的转置矩阵, 然后除以 (列数-1)。如果输入数据的维度为(N,M),则该乘积的形状为(N,M)和(M,N),得到一个形状为(N,N)的矩阵。即对于NxM的矩阵A, 去中心化后的矩阵为A', 则协方差等于:

3. 示例

一个矩阵A的协方差矩阵计算

设2x4的矩阵A为:

按行计算均值,意味着每一列是一个observation(样本),那么每一行就是一个随机变量(特征),举例如对于随机变量X,Y, 有四组采样结果(1,2), (2,3), (4,2), (1,5), 写成矩阵相乘的形式为:

则均值向量为

去中心化后的矩阵A'为:

则协方差矩阵cov(A)为:

所以,

代码numpy验算

import numpy as np

A = np.array([[1, 2, 4, 1], [2, 3, 2, 5]])

print("======= cov(A) =======")

print(np.cov(A))

mean_A = np.mean(A,axis=1,keepdims=True)

print("======= mean_A =======")

print(mean_A)

A1 = A - mean_A

print("======= A - mean_A =======")

print(A1)

covA =np.matmul(A1, A1.T)/(A1.shape[1]-1)

print("======= covA =======")

print(covA)

输出结果:

两个矩阵A、B的协方差矩阵计算

设矩阵A (维度NxM), B (维度NxM),去中心化后的矩阵为A', B', 则两个矩阵的协方差矩阵cov(A,B)为:

设A,B (维度为2x4)值分别为:

,

则 按行求平均值, 得平均值向量为, , 去中心化后,得到:

则其协方差矩阵 cov(A,B)(维度为4x4)为

性质:

代码numpy验算

A = np.array([[1, 2, 4, 1], [2, 3, 2, 5]])

B = np.array([[5, 3, 4, 4], [2, 2, 8, 8]])

B1 = B - np.mean(B,axis=1,keepdims=True)

A1 = A - np.mean(A,axis=1,keepdims=True)

C11 = np.cov(A)

C22 = np.cov(B)

C12 = np.matmul(A1, B1.T)/(B1.shape[1]-1)

C21 = np.matmul(B1, A1.T)/(A1.shape[1]-1)

C = np.vstack((np.hstack((C11,C12)),np.hstack((C21,C22))))

print("======= np.cov(A,B) =======")

print(np.cov(A,B))

print("======= C =======")

print(C)

结果:

参考:

协方差矩阵计算实例_协方差矩阵例子-CSDN博客

协方差的计算方法_协方差计算-CSDN博客 (matlab计算)

带你了解什么是Covariance Matrix协方差矩阵

https://wenku.csdn.net/answer/2408abac75f64f0186adff81be057f99

相关文章

怎么加入美团圈圈微信群
365上怎么买比分

怎么加入美团圈圈微信群

📅 07-01 👁️ 600
《英雄聯盟》2025LCK杯觀賽地址分享
365上怎么买比分

《英雄聯盟》2025LCK杯觀賽地址分享

📅 06-30 👁️ 5963