前言
在许多算法中需要求出两个分量间相互关系的信息。协方差就是描述这种相互关联程度的一个特征数。
一、协方差是什么?
设
(
X
,
Y
)
(X,Y)
(X,Y)是一个二维随机变量,若
E
[
(
X
−
E
(
X
)
)
(
Y
−
E
(
Y
)
)
]
E[(X-E(X))(Y-E(Y))]
E[(X−E(X))(Y−E(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[(X−E(X))(Y−E(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[(X−E(X))(X−E(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_X\sigma_Y}=\frac{E[(X-E(X))(Y-E(Y)]}{\sigma_X\sigma_Y}
ρX,Y=σXσYcov(X,Y)=σXσYE[(X−E(X))(Y−E(Y)]
注意:在求相关系数矩阵是,当两个变量之间的有一个的标准差为0,那么求得的相关系数矩阵会出现nan。文章来源:https://www.toymoban.com/news/detail-630662.html
参考资料:概率论与数理统计教程(第三版)文章来源地址https://www.toymoban.com/news/detail-630662.html
到了这里,关于【概率论理论】协方差,协方差矩阵理论(机器学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!