对机器学习中的协方差矩阵还是傻傻的搞不清楚?这次我终于捋明白了!

一、数学中协方差矩阵的前世今生

1、前世
(1)随机变量 X X X的2阶中心距: E E E{ [ X − E ( X ) ] 2 [X-E(X)]^2 [XE(X)]2}
(2)随机变量 X 和 Y X和Y XY的2阶混合中心距: E E E{ [ X − E ( X ) ] [ Y − E ( Y ) ] [X-E(X)][Y-E(Y)] [XE(X)][YE(Y)]}
2、今生
协方差矩阵由2阶中心距和2阶混合中心距共同定义。
(1)二维变量的协方差矩阵
设二维随机变量( X 1 , X 2 X_1,X_2 X1,X2),可得到四个2阶中心距,分别为:
c 11 c_{11} c11= E E E{ [ X 1 − E ( X 1 ) ] 2 [X_1-E(X_1)]^2 [X1E(X1)]2}
c 12 c_{12} c12= E E E{ [ X 1 − E ( X 1 ) ] [ X 2 − E ( X 2 ) ] [X_1-E(X_1)][X_2-E(X_2)] [X1E(X1)][X2E(X2)]}
c 21 c_{21} c21= E E E{ [ X 2 − E ( X 2 ) ] [ X 1 − E ( X 1 ) ] [X_2-E(X_2)][X_1-E(X_1)] [X2E(X2)][X1E(X1)]}
c 22 c_{22} c22= E E E{ [ X 2 − E ( X 2 ) ] 2 [X_2-E(X_2)]^2 [X2E(X2)]2}
c 11 c_{11} c11 c 12 c_{12} c12 c 21 c_{21} c21 c 22 c_{22} c22共同组成的矩阵 C C C,称为二维随机变量( X 1 , X 2 X_1,X_2 X1,X2)的协方差矩阵。 C C C的形式如下:
C = ( c 11 c 12 c 21 c 22 ) C=\left( \begin{matrix} c_{11}& c_{12} \\ c_{21}& c_{22} \end{matrix} \right) C=(c11c21c12c22)
(2) n n n维协方差矩阵
将二维随机变量的协方差矩阵进行推广,设 n n n维随机变量( X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn),可得到 n × n n×n n×n个2阶中心距 c i j c_{ij} cij= E E E{ [ X i − E ( X i ) ] [ X j − E ( X j ) ] [X_i-E(X_i)][X_j-E(X_j)] [XiE(Xi)][XjE(Xj)]},其中 i , j = 1 , 2 , . . . , n i,j=1,2,...,n i,j=1,2,...,n,则称矩阵
C = ( c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋮ ⋮ ⋯ ⋮ c n 1 c n 2 ⋯ c n n ) C=\left( \begin{matrix} c_{11}& c_{12} & \cdots &c_{1n} \\ c_{21}& c_{22}& \cdots &c_{2n} \\ \vdots& \vdots& \cdots &\vdots \\ c_{n1}& c_{n2}& \cdots &c_{nn} \end{matrix} \right) C=c11c21cn1c12c22cn2c1nc2ncnn
n n n维随机变量( X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn)的协方差矩阵。
由于 c i j = c j i c_{ij}=c_{ji} cij=cji,显然,协方差矩阵是一个对称矩阵。

二、机器学习中的协方差矩阵

机器学习中模型的训练需要大量样本,在计算协方差矩阵时,一般先将样本拼成一个 d × N d×N d×N维的矩阵 X X X={ x 1 , x 2 , . . . , x N x_1,x_2,...,x_N x1,x2,...,xN},其中 d d d为样本的维数, N N N为样本的个数, x k x _k xk表示一个样本。
计算样本均值 x 0 = 1 N ∑ i = k N x k x_0=\displaystyle\frac{1}{N}\sum_{i=k}^Nx_k x0=N1i=kNxk后,可得到 d d d维样本的协方差矩阵: Σ X = 1 N ∑ i = k N ( x k − x 0 ) ( x k − x 0 ) T \Sigma_X=\displaystyle\frac{1}{N}\sum_{i=k}^N(x_k-x_0)(x_k-x_0)^T ΣX=N1i=kN(xkx0)(xkx0)T
举例:
对于由5个样本组成的一个二维数据 X = ( − 1 − 1 0 2 0 − 2 0 0 1 1 ) X=\left( \begin{matrix} -1& -1 & 0&2 &0\\ -2& 0& 0 &1 &1 \end{matrix} \right) X=(1210002101)
显然,在这里 x 1 = ( − 1 − 2 ) , x 2 = ( − 1 0 ) , x 3 = ( 0 0 ) , x 4 = ( 2 1 ) , x 5 = ( 0 1 ) , 从 而 有 x 0 = ( 0 0 ) x_1=\left( \begin{matrix} -1\\ -2 \end{matrix} \right),x_2=\left( \begin{matrix} -1\\ 0 \end{matrix} \right),x_3=\left( \begin{matrix} 0\\ 0 \end{matrix} \right),x_4=\left( \begin{matrix} 2\\ 1 \end{matrix} \right),x_5=\left( \begin{matrix} 0\\ 1 \end{matrix} \right),从而有x_0=\left( \begin{matrix} 0\\ 0 \end{matrix} \right) x1=(12),x2=(10),x3=(00),x4=(21),x5=(01),x0=(00)
进一步求出该二维数据的协方差矩阵
在这里插入图片描述
通过以上计算过程可以看出,每个样本的计算过程都与数学中协方差矩阵的定义保持一致,eg:过程①,也即是说机器学习中协方差矩阵的计算和数学中协方差矩阵的定义保持一致。
事实上,以上计算过程等价于 C = 1 5 X X T = 1 5 ( − 1 − 1 0 2 0 − 2 0 0 1 1 ) ( − 1 − 2 − 1 0 0 0 2 1 0 1 ) = ( 6 5 4 5 4 5 6 5 ) C=\displaystyle\frac{1}{5}XX^T=\frac{1}{5}\left( \begin{matrix} -1& -1 & 0&2 &0\\ -2& 0& 0 &1 &1 \end{matrix} \right)\left( \begin{matrix} -1& -2\\ -1& 0\\ 0& 0\\ 2& 1\\ 0& 1 \end{matrix} \right)=\left( \begin{matrix} \displaystyle\frac{6}{5} & & \displaystyle\frac{4}{5}\\ & & \\ \displaystyle\frac{4}{5}& & \displaystyle\frac{6}{5} \end{matrix} \right) C=51XXT=51(1210002101)1102020011=56545456
总结:
机器学习中协方差矩阵的快速计算公式为:
C = 1 N X X T C=\displaystyle\frac{1}{N}XX^T C=N1XXT
其中, N N N为样本个数, X X X为大量样本拼成的 d × N d×N d×N维矩阵。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值