协方差矩阵计算方法[通俗易懂]

协方差矩阵计算方法[通俗易懂]1.协方差矩阵X,YX,YX,Y是两个随机变量,X,YX,YX,Y的协方差Cov(X,Y)Cov(X,Y)Cov(X,Y)定义为:cov(X,Y)=E[(X−μx)(Y−μy)]cov(X,Y)=E[(X-\mu_x)(Y-\mu_y)]cov(X,Y)=E[(X−μx​)(Y−μy​)]其中:E(X)=μx,E(Y)=μyE(X)=\mu_x,E(Y)=\mu_yE(X)=…

大家好,又见面了,我是你们的朋友全栈君。

1. 协方差矩阵

X , Y X,Y X,Y是两个随机变量, X , Y X,Y X,Y的协方差 C o v ( X , Y ) Cov(X,Y) Cov(X,Y)定义为:
c o v ( X , Y ) = E [ ( X − μ x ) ( Y − μ y ) ] cov(X,Y) = E[(X-\mu_x)(Y-\mu_y)] cov(X,Y)=E[(X−μx​)(Y−μy​)]
其中:
E ( X ) = μ x , E ( Y ) = μ y E(X)=\mu_x,E(Y)=\mu_y E(X)=μx​,E(Y)=μy​

2.协方差矩阵定义

矩阵中的数据按行排列和按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个observation(样本),那么每一列就是一个随机变量(特征)。
X m × n = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] = [ c 1 c 2 ⋯ c n ] X_{m \times n} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \quad = \begin{bmatrix} c_1 & c_2 & \cdots & c_n \end{bmatrix} \quad Xm×n​=⎣⎢⎢⎢⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​⋯⋯⋱⋯​a1n​a2n​⋮amn​​⎦⎥⎥⎥⎤​=[c1​​c2​​⋯​cn​​]
协方差矩阵:
c o v M a t r i x = 1 m − 1 [ c o v ( c 1 , c 1 ) c o v ( c 1 , c 2 ) ⋯ c o v ( c 1 , c n ) c o v ( c 2 , c 1 ) c o v ( c 2 , c 2 ) ⋯ c o v ( c 2 , c n ) ⋮ ⋮ ⋱ ⋮ c o v ( c n , c 1 ) c o v ( c n , c 2 ) ⋯ c o v ( c n , c n ) ] covMatrix = \frac{1}{m-1} \begin{bmatrix} cov(c_1, c_1) & cov(c_1, c_2) & \cdots & cov(c_1, c_n) \\ cov(c_2, c_1) & cov(c_2, c_2) & \cdots & cov(c_2, c_n) \\ \vdots & \vdots & \ddots & \vdots \\ cov(c_n, c_1) & cov(c_n, c_2) & \cdots & cov(c_n, c_n) \\ \end{bmatrix} \quad covMatrix=m−11​⎣⎢⎢⎢⎡​cov(c1​,c1​)cov(c2​,c1​)⋮cov(cn​,c1​)​cov(c1​,c2​)cov(c2​,c2​)⋮cov(cn​,c2​)​⋯⋯⋱⋯​cov(c1​,cn​)cov(c2​,cn​)⋮cov(cn​,cn​)​⎦⎥⎥⎥⎤​
协方差矩阵的维度等于随机变量的个数,即每一个observation的维度。在某些场合前边也会出现 1 m \frac{1}{m} m1​,而不是 1 m − 1 \frac{1}{m-1} m−11​。

3.求解协方差矩阵的步骤

举个例子,矩阵X按行排列:
X = [ 1 2 3 3 1 1 ] = [ c 1 c 2 c 3 ] X = \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 1\\ \end{bmatrix} \quad = \begin{bmatrix} c_1 & c_2 & c_3 \end{bmatrix} \quad X=[13​21​31​]=[c1​​c2​​c3​​]

1.求每个维度的平均值
c ˉ = [ 2 1.5 2 ] = [ c 1 ˉ c 2 ˉ c 3 ˉ ] \bar{c} = \begin{bmatrix} 2 & 1.5 & 2 \end{bmatrix} \quad = \begin{bmatrix} \bar{c_1} & \bar{c_2} & \bar{c_3} \end{bmatrix} \quad cˉ=[2​1.5​2​]=[c1​ˉ​​c2​ˉ​​c3​ˉ​​]
2.将X的每一列减去平均值
X = [ − 1 0.5 1 1 − 0.5 − 1 ] X = \begin{bmatrix} -1 & 0.5 & 1 \\ 1 & -0.5 & -1\\ \end{bmatrix} \quad X=[−11​0.5−0.5​1−1​]
其中:
c i = c i − c i ˉ c_i = c_i – \bar{c_i} ci​=ci​−ci​ˉ​
3.计算协方差矩阵
c o v = 1 m − 1 X T X = 1 2 − 1 [ 2 − 1 − 2 − 1 0.5 1 − 2 1 2 ] cov = \frac{1}{m-1}X^TX = \frac{1}{2-1} \begin{bmatrix} 2 & -1 & -2 \\ -1 & 0.5 & 1 \\ -2 & 1 & 2 \\ \end{bmatrix} \quad cov=m−11​XTX=2−11​⎣⎡​2−1−2​−10.51​−212​⎦⎤​

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153955.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言opencv读取图像_matlab读取一幅图像并显示

    c语言opencv读取图像_matlab读取一幅图像并显示函数cv2.imread()用于从指定的文件读取图像OpenCV完整例程200篇01.图像的读取(cv2.imread)02.图像的保存(cv2.imwrite)03.图像的显示(cv2.imshow)07.图像的创建(np.zeros)08.图像的复制(np.copy)09.图像的裁剪(cv2.selectROI)10.图像的拼接(np.hstack)……………

    2022年8月31日
  • oracle的join的用法_oracle分页函数

    oracle的join的用法_oracle分页函数/*关于在join中出现ORA-00918:未明确定义列的解决办法*//*关于join和where表连接问题,需要在使用join时需要使用列的别名,避免相同列名的出现。*/–以下为简要测试过程:–测试对象如下:SQL>select*fromoraking1;IDNAME——————————1oraking2oraking23or…

    2022年10月5日
  • C++:cstdio 头文件详解

    C++:cstdio 头文件详解<cstdio>(stdio.h)headerC库执行输入/输出操作:输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。这个库使用流来操作物理设备如键盘,打印机,终端或者系统支持的任何其他类型的文件。流是一种以统一的方式与这些交互的抽象; 所有流都具有相似的属性,与它们所关联的物理介质的各个特征无关。流…

    2022年10月23日
  • 扩展卡尔曼滤波EKF与多传感器融合

    扩展卡尔曼滤波EKF与多传感器融合ExtendedKalmanFilter(扩展卡尔曼滤波)是卡尔曼滤波的非线性版本。在状态转移方程确定的情况下,EKF已经成为了非线性系统状态估计的事实标准。本文将简要介绍EKF,并介绍其在无人驾驶多传感器融合上的应用。

    2022年6月16日
  • 防火墙的AAA认证[通俗易懂]

    防火墙的AAA认证[通俗易懂]防火墙的AAA认证防火墙的AAA提供基于三种数据库认证:LOCAL,TACACS+,RADIUS.使用tacacs+,radius两种认证协议来进行专门的AAA服务器与NAS之间进行接入访问认证。基本认证原理:客户机发起验证请求到NAS,而NAS帮助收集用户的验证信息并使用pre-sharekey与AAA服务器进行交互,AAA会对NAS提交上来的…

    2022年6月5日
  • 对接【支付宝】支付接口「建议收藏」

    对接【支付宝】支付接口「建议收藏」场景最近在做支付宝的接口对接,之前做过一个版本,但是由于申请了新的账号以前旧的的接口对接就不能使用了所以就开始对接新的版本接口对接,在这里也记录一下让那些还没有对接的兄弟少走点弯路。准备先申请

    2022年8月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号