【概率论理论】协方差,协方差矩阵理论(机器学习)


前言

  在许多算法中需要求出两个分量间相互关系的信息。协方差就是描述这种相互关联程度的一个特征数。


一、协方差是什么?

  设

(

X

,

Y

)

(X,Y)

(X,Y)是一个二维随机变量,若

E

[

(

X

E

(

X

)

)

(

Y

E

(

Y

)

)

]

E[(X-E(X))(Y-E(Y))]

E[(XE(X))(YE(Y))]存在,则称此数学期望为

X

X

X

Y

Y

Y的协方差,或称为

X

X

X

Y

Y

Y的相关(中心)矩,并记为

c

o

v

(

X

,

Y

)

=

E

[

(

X

E

(

X

)

)

(

Y

E

(

Y

)

)

]

cov(X,Y)=E[(X-E(X))(Y-E(Y))]

cov(X,Y)=E[(XE(X))(YE(Y))]特别有

C

o

v

(

X

,

X

)

=

V

a

r

(

X

)

Cov(X,X)=Var(X)

Cov(X,X)=Var(X).

  • 当cov(X,Y)>0时,称X与Y正相关,这时两个偏差(X-E(X))与有同时增加或同时减少的倾向.由于E(X)与E(Y)都是常数,故等价于X与Y同时增加或同时减少的倾向,这就是正相关的含义。
  • 当cov(X,Y)>0时,称X与Y负相关.
  • 当cov(X,Y)=0时,称X与Y不相关.

C

o

v

(

a

X

,

b

X

)

=

a

b

C

o

v

(

X

,

Y

)

Cov(aX,bX)=abCov(X,Y)

Cov(aX,bX)=abCov(X,Y)
由上述性质可得,未预处理的数据的协方差仅有正负号为有用信息,即表示变量间呈现正负相关。

二、协方差矩阵是什么?

  记n维随机变量为

X

=

(

X

1

,

X

2

,

.

.

.

,

X

n

)

X= (X_1,X_2,...,X_n)^{'}

X=(X1,X2,...,Xn),若其每个分量的数字期望都存在,则称

E

(

X

)

=

(

E

(

X

1

)

,

E

(

X

2

)

,

.

.

.

,

E

(

X

n

)

)

E(X)=(E(X_1),E(X_2),...,E(X_n))^{'}

E(X)=(E(X1),E(X2),...,E(Xn))
为n维随机向量X的数学期望向量,简称为X的数学期望,而称

E

[

(

X

E

(

X

)

)

(

X

E

(

X

)

)

]

=

[

V

a

r

(

X

1

)

C

o

v

(

X

1

,

X

2

)

C

o

v

(

X

1

,

X

n

)

C

o

v

(

X

2

,

X

1

)

V

a

r

(

X

2

)

C

o

v

(

X

2

,

X

p

)

C

o

v

(

X

n

,

X

1

)

C

o

v

(

X

n

,

X

2

)

V

a

r

(

X

n

)

]

E[(X-E(X))(X-E(X))^{'}]=begin{bmatrix} Var(X_1) &Cov(X_1,X_2) &cdots&Cov(X_1,X_n) \ Cov(X_2,X_1)&Var(X_2) &cdots &Cov(X_2,X_p) \ vdots& vdots& ddots& vdots\ Cov(X_n,X_1)&Cov(X_n,X_2) &cdots &Var(X_n) \end{bmatrix}

E[(XE(X))(XE(X))]=Var(X1)Cov(X2,X1)Cov(Xn,X1)Cov(X1,X2)Var(X2)Cov(Xn,X2)Cov(X1,Xn)Cov(X2,Xp)Var(Xn)
为该随机向量的 方差协方差矩阵,简称协方差阵,记为Cov(X).
协方差矩阵的一般求法:

# 求矩阵X_train的协方差矩阵cov_X;
# 只有去均值后才可以直接X与X的逆相乘取均值得协方差矩阵
import numpy as np

# 通过推导公式求协方差  (XX.T,因为是属性与属性的相关关系,所以公式中矩阵X为每一行表示一个feature)
def get_cov(X):
    """
    注意:分母为样本数减1
    """
    X_ = X-np.vstack(X.mean(axis= 1))
    cov_X = np.dot(X_, X_.T)/(X_.shape[1]-1)
    return cov_X

#get_cov(X.T)等价于
cov_X = np.cov(X,rowvar=0) # 计算协方差矩阵,rowvar=0表示数据的每一列代表一个feature

#可直接求出相关系数矩阵
coef_X = no.coffcoef(X_train)

三、协方差矩阵与相关系数矩阵

  协方差矩阵与相关系数矩阵区别为,相关系数矩阵是标准后的协方差矩阵,即在PCA中,当量纲相同时用 协方差矩阵&相关系数矩阵,但是当量纲不同时为了消除不同量纲间的影响(出现大数吃小数现象),要使用相关系数矩阵,相关系数矩阵除了描述正负相关外还描述关联的程度大小。
Pearson相关系数的公式:

ρ

X

,

Y

=

c

o

v

(

X

,

Y

)

σ

X

σ

Y

=

E

[

(

X

E

(

X

)

)

(

Y

E

(

Y

)

]

σ

X

σ

Y

rho_{X,Y}=frac{cov(X,Y)}{sigma_Xsigma_Y}=frac{E[(X-E(X))(Y-E(Y)]}{sigma_Xsigma_Y}

ρX,Y=σXσYcov(X,Y)=σXσYE[(XE(X))(YE(Y)]
注意:在求相关系数矩阵是,当两个变量之间的有一个的标准差为0,那么求得的相关系数矩阵会出现nan。

参考资料:概率论与数理统计教程(第三版)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>