协方差在MySQL中怎么求_求解协方差矩阵

本文介绍了协方差的概念及其在MySQL中的计算方法,详细讲解了协方差矩阵的定义和求解步骤,并探讨了协方差矩阵在高维数据中的重要性。通过实例展示了如何处理数据,计算协方差,以及协方差矩阵的对角线元素与方差的关系。
摘要由CSDN通过智能技术生成

如何求协方差矩阵

一. 协方差定义

X、Y 是两个随机变量,X、Y 的协方差 cov(X, Y) 定义为:

gif.latex?cov(X,Y)=E%5B(X-%5Cmu_x)(Y-%5Cmu_y)%5D

其中:

gif.latex?E(X)%20=%20%5Cmu_x 、

gif.latex?E(Y)%20=%20%5Cmu_y

二. 协方差矩阵定义

矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个observation(or sample),那么每一列就是一个随机变量。协方差对角线处的元素表示的是方差,这个关系我们记住就行了。比如目前我们从之前的两个变量过渡成了三个变量,则我们的协方差矩阵可以写为:

d366373754099d1cce64a3485ffe10e4.png

从上面我们可以清楚的看到对角线上的数值是cov(x,x)=var(x),cov(y,y)=var(y),cov(y,y)=var(z),因此对角线处是我们的方差,有一个函数trace()专门则用于表示提取我们矩阵当中的对角线处的元素。下面我们把用cov函数表示的形式变化为更加普世的形式也就是用aij来表示我们的每一个协方差的数值。

gif.latex?X_%7Bm%5Ctimes%7Bn%7D%7D=%5Cbegin%7Bbmatrix%7Da_%7B11%7D%20&a_%7B12%7D%20%20&%5Ccdots%20&a_%7B1n%7D%20%5C%5C%20a_%7B21%7D%20&a_%7B22%7D%20%20&%5Ccdots%20&a_%7B2n%7D%20%5C%5C%20%5Cvdots%20%20&%5Cvdots%20%20%20&%20%5Cvdots&%20%5Cvdots%20%5C%5Ca_%7Bm1%7D%20&a_%7Bm2%7D%20%20&%5Ccdots%20&a_%7Bmn%7D%20%5C%5C%20%5Cend%7Bbmatrix%7D=%5Cbegin%7Bbmatrix%7Dc_1%20&c_2%20%20&%5Ccdots&c_n%20%5C%5C%20%5Cend%7Bbmatrix%7D

协方差矩阵:

gif.latex?covMatrix%20=%20%5Cfrac%7B1%7D%7Bm-1%7D%5Cbegin%7Bbmatrix%7Dcov(c_1,c_1)%20&cov(c_1,c_2)%20%20&%5Ccdots%20%20&cov(c_1,c_n)%20%5C%5C%20cov(c_2,c_1)%20&cov(c_2,c_2)%20%20&%5Ccdots%20%20&cov(c_2,c_n)%20%5C%5C%20%5Cvdots%20&%5Cvdots%20%20&%5Cvdots%20%20&%5Cvdots%20%5C%5C%20cov(c_n,c_1)%20&cov(c_n,c_2)%20%20&%5Ccdots%20%20&cov(c_n,c_n)%20%5Cend%7Bbmatrix%7D

协方差矩阵的维度等于随机变量的个数,即每一个 observation 的维度。在某些场合前边也会出现 1 / m,而不是 1 / (m - 1).求解得到的样本协方差是1 / (m - 1),总体协方差是1/m。

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

举个例子,矩阵 X 按行排列:

gif.latex?X%20=%20%5Cbegin%7Bbmatrix%7D1%20&2%20%20&3%20%5C%5C%20%203&1%20%20&1%20%5Cend%7Bbmatrix%7D=%5Cbegin%7Bbmatrix%7Dc_1%20&c_2%20%20&%20c_3%5Cend%7Bbmatrix%7D

1. 求每个维度的平均值

gif.latex?%5Cbar%7Bc%7D%20=%5Cbegin%7Bbmatrix%7D2%20&1.5%20%20&2%20%5Cend%7Bbmatrix%7D=%20%5Cbegin%7Bbmatrix%7D%5Cbar%7Bc_1%7D%20&%5Cbar%7Bc_2%7D%20%20&%5Cbar%7Bc_3%7D%20%5Cend%7Bbmatrix%7D

2. 将 X 的每一列减去平均值

gif.latex?X=%5Cbegin%7Bbmatrix%7D-1%20&0.5%20%20&1%20%5C%5C%201%20&%20-0.5%20&-1%20%5Cend%7Bbmatrix%7D

其中:

gif.latex?c_i=c_i-%5Cbar%7Bc_i%7D

3. 计算协方差矩阵

gif.latex?cov%20=%5Cfrac%7B1%7D%7Bm-1%7DX%5E%7BT%7DX=%5Cfrac%7B1%7D%7B2-1%7D%20%5Cbegin%7Bbmatrix%7D%202&%20-1%20&%20-2%5C%5C%20-1%20&0.5%20%20&1%20%5C%5C%20%20-2&1%20%20&2%20%5Cend%7Bbmatrix%7D

也就是将所有的方差都相乘乘起来,然后再求出方差的平均数,就得到协方差,相当于二维情况下的标准差的平方。协方差在高维度的高斯分布当中非常重要。

注意:

有时候在书上或者网上会看到这样的公式,协方差矩阵 Σ:

gif.latex?%5CSigma%20=%20%5Cfrac%7B1%7D%7Bm%7D%5Csum_%7Bi=1%7D%5Em%7B(X%5Ei)%20%5Ccdot%20(%7BX%5Ei%7D)%5ET%7D

这里之所以会是 X * X’ 是因为原始数据集 X 是按列排列的,即:

gif.latex?X%20=%20%5Cbegin%7BBmatrix%7DX%5E1%20&X%5E2%20%20&%5Ccdots%20%20&%20X%5En%5Cend%7BBmatrix%7D

备注:为什么协方差矩阵的最大特征向量能使得误差较小?

回答:因为协方差矩阵表示向量两两之间的相似度,可以理解为向量之间的关系信息。协方差矩阵保存的信息越多,误差越小。怎么保存更多信息呢?需要说明的是特征值代表特征向量的权重,所以挑最大的几个特征向量就能保存更多的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值