由于是在自学机器学习过程中随手写的,所以比较乱,就是看到那个知识点不会就写下来。
满秩矩阵
设A是n阶矩阵, 若r(A) = n, 则称A为满秩矩阵。但满秩不局限于n阶矩阵。
若矩阵秩等于行数,称为行满秩;若矩阵秩等于列数,称为列满秩。既是行满秩又是列满秩则为n阶矩阵即n阶方阵。行满秩矩阵就是行向量线性无关,列满秩矩阵就是列向量线性无关;所以如果是方阵,行满秩矩阵与列满秩矩阵是等价的。
协方差和协方差矩阵
协方差
通常,在提到协方差的时候,需要对其进一步区分。(1)随机变量的协方差。跟数学期望、方差一样,是分布的一个总体参数。(2)样本的协方差。是样本集的一个统计量,可作为联合分布总体参数的一个估计。在实际中计算的通常是样本的协方差。
随机变量的协方差
在概率论和统计中,协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为零。定义如下。
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])]
当X,Y是同一个随机变量时,X与其自身的协方差就是X的方差,可以说方差是协方差的一个特例。
c
o
v
(
X
,
X
)
=
E
[
(
X
−
E
[
X
]
)
(
X
−
E
[
X
]
)
]
cov(X,X)=E[(X−E[X])(X−E[X])]
cov(X,X)=E[(X−E[X])(X−E[X])]
或
v
a
r
(
X
)
=
c
o
v
(
X
,
X
)
=
E
[
(
X
−
E
[
X
]
)
2
]
var(X)=cov(X,X)=E[(X−E[X])2]
var(X)=cov(X,X)=E[(X−E[X])2]
由于随机变量的取值范围不同,两个协方差不具备可比性。如
X
,
Y
,
Z
X,Y,Z
X,Y,Z分别是三个随机变量,想要比较X与Y的线性相关程度强,还是X与Z的线性相关程度强,通过
c
o
v
(
X
,
Y
)
cov(X,Y)
cov(X,Y)与
c
o
v
(
X
,
Z
)
cov(X,Z)
cov(X,Z)无法直接比较。定义相关系数η为
η
=
c
o
v
(
X
,
Y
)
(
v
a
r
(
X
)
⋅
v
a
r
(
Y
)
)
η=\frac{cov(X,Y)}{\sqrt(var(X)⋅var(Y))}
η=(var(X)⋅var(Y))cov(X,Y)
通过X的方差 v a r ( X ) var(X) var(X)与 Y Y Y的方差 v a r ( Y ) var(Y) var(Y)对协方差 c o v ( X , Y ) cov(X,Y) cov(X,Y)归一化,得到相关系数 η , η η,η η,η的取值范围是[−1,1]。1表示完全线性相关,−1表示完全线性负相关,0表示线性无关。线性无关并不代表完全无关,更不代表相互独立。
样本的协方差
在实际中,通常我们手头会有一些样本,样本有多个属性,每个样本可以看成一个多维随机变量的样本点,我们需要分析两个维度之间的线性关系。协方差及相关系数是度量随机变量间线性关系的参数,由于不知道具体的分布,只能通过样本来进行估计。
设样本对应的多维随机变量为
X
=
[
X
1
,
X
2
,
X
3
,
.
.
.
,
X
n
]
T
X=[X1,X2,X3,...,Xn]^T
X=[X1,X2,X3,...,Xn]T,样本集合为
x
⋅
j
=
[
x
1
j
,
x
2
j
,
.
.
.
,
x
n
j
]
T
∣
1
⩽
j
⩽
m
{x_{⋅j}=[x_{1j},x_{2j},...,x_{nj}]^T|1⩽j⩽m}
x⋅j=[x1j,x2j,...,xnj]T∣1⩽j⩽m,m为样本数量。与样本方差的计算相似,a和b两个维度样本的协方差公式为,其中1⩽a⩽n,1⩽b⩽n,n为样本维度
q
a
b
=
∑
j
=
1
m
(
x
a
j
−
x
ˉ
a
)
(
x
b
j
−
x
ˉ
b
)
m
−
1
q_{ab}=\frac{\sum_{j=1}^{m}(x_{aj}−\bar{x}_a)(x_{bj}−\bar{x}_b)}{m−1}
qab=m−1∑j=1m(xaj−xˉa)(xbj−xˉb)
这里分母为m−1是因为随机变量的数学期望未知,以样本均值代替,自由度减一。
协方差矩阵
多维随机变量的协方差矩阵
对多维随机变量 X = [ X 1 , X 2 , X 3 , . . . , X n ] T X=[X1,X2,X3,...,Xn]^T X=[X1,X2,X3,...,Xn]T,我们往往需要计算各维度两两之间的协方差,这样各协方差组成了一个n×n的矩阵,称为协方差矩阵。协方差矩阵是个对称矩阵,对角线上的元素是各维度上随机变量的方差。我们定义协方差矩阵为 ∑ \sum ∑,这个符号与求和 ∑ \sum ∑相同,需要根据上下文区分。矩阵内的元素 ∑ i j \sum_{ij} ∑ij为
∑ i j = c o v ( X i , X j ) = E [ ( X i − E [ X i ] ) ( X j − E [ X j ] ) ] \sum_{ij}=cov(X_i,X_j)=E[(X_i−E[X_i])(X_j−E[X_j])] ∑ij=cov(Xi,Xj)=E[(Xi−E[Xi])(Xj−E[Xj])]
这样这个矩阵为
∑
=
E
[
(
X
−
E
[
X
]
)
(
X
−
E
[
X
]
)
T
]
\sum=E[(X−E[X])(X−E[X])^T]
∑=E[(X−E[X])(X−E[X])T]
=
[
c
o
v
(
X
1
,
X
1
)
c
o
v
(
X
2
,
X
1
)
.
.
.
c
o
v
(
X
1
,
X
n
)
c
o
v
(
X
2
,
X
1
)
c
o
v
(
X
2
,
X
2
)
.
.
.
c
o
v
(
X
2
,
X
n
)
.
.
.
.
.
.
.
.
.
.
.
.
c
o
v
(
X
n
,
X
1
)
c
o
v
(
X
n
,
X
2
)
.
.
.
c
o
v
(
X
n
,
X
n
)
]
= \left[ \begin{matrix} cov(X_1,X_1) \quad cov(X_2,X_1)\quad ... \quad cov(X_1, X_n) \\ cov(X_2,X_1) \quad cov(X_2,X_2)\quad ... \quad cov(X_2, X_n) \\ ... \quad ...\quad ... \quad ... \\ cov(X_n,X_1) \quad cov(X_n,X_2)\quad ... \quad cov(X_n, X_n) \end{matrix} \right]
=⎣⎢⎢⎡cov(X1,X1)cov(X2,X1)...cov(X1,Xn)cov(X2,X1)cov(X2,X2)...cov(X2,Xn)............cov(Xn,X1)cov(Xn,X2)...cov(Xn,Xn)⎦⎥⎥⎤
=
[
E
[
(
X
1
−
E
[
X
1
]
)
(
X
1
−
E
[
X
1
]
)
]
E
[
(
X
1
−
E
[
X
1
]
)
(
X
2
−
E
[
X
2
]
)
]
.
.
.
E
[
(
X
1
−
E
[
X
1
]
)
(
X
n
−
E
[
X
n
]
)
]
E
[
(
X
2
−
E
[
X
2
]
)
(
X
1
−
E
[
X
1
]
)
]
E
[
(
X
2
−
E
[
X
2
]
)
(
X
2
−
E
[
X
2
]
)
]
.
.
.
E
[
(
X
2
−
E
[
X
2
]
)
(
X
n
−
E
[
X
n
]
)
]
.
.
.
.
.
.
.
.
.
.
.
.
E
[
(
X
n
−
E
[
X
n
]
)
(
X
n
−
E
[
X
n
]
)
]
E
[
(
X
n
−
E
[
X
n
]
)
(
X
2
−
E
[
X
2
]
)
]
.
.
.
E
[
(
X
n
−
E
[
X
n
]
)
(
X
n
−
E
[
X
n
]
)
]
]
=\left[ \begin{matrix} E[(X_1 - E[X_1])(X_1 - E[X_1])] \quad E[(X_1 - E[X_1])(X_2 - E[X_2])] \quad ... \quad E[(X_1 - E[X_1])(X_n - E[X_n])] \\ E[(X_2 - E[X_2])(X_1 - E[X_1])] \quad E[(X_2 - E[X_2])(X_2 - E[X_2])] \quad ... \quad E[(X_2 - E[X_2])(X_n - E[X_n])] \\ ... \quad ... \quad ... \quad ... \\ E[(X_n - E[X_n])(X_n - E[X_n])] \quad E[(X_n - E[X_n])(X_2 - E[X_2])] \quad ... \quad E[(X_n - E[X_n])(X_n - E[X_n])] \end{matrix} \right]
=⎣⎢⎢⎡E[(X1−E[X1])(X1−E[X1])]E[(X1−E[X1])(X2−E[X2])]...E[(X1−E[X1])(Xn−E[Xn])]E[(X2−E[X2])(X1−E[X1])]E[(X2−E[X2])(X2−E[X2])]...E[(X2−E[X2])(Xn−E[Xn])]............E[(Xn−E[Xn])(Xn−E[Xn])]E[(Xn−E[Xn])(X2−E[X2])]...E[(Xn−E[Xn])(Xn−E[Xn])]⎦⎥⎥⎤
样本的协方差矩阵
与上面的协方差矩阵相同,只是矩阵内各元素以样本的协方差替换。样本集合为{x⋅j=[x1j,x2j,…,xnj]T|1⩽j⩽m},m为样本数量,所有样本可以表示成一个n×m的矩阵。我们以Σ^表示样本的协方差矩阵,与Σ区分。
∑
^
=
[
q
11
q
12
.
.
.
q
1
n
q
21
q
22
.
.
.
q
2
n
.
.
.
.
.
.
.
.
.
.
.
.
q
n
1
q
n
2
.
.
.
q
n
n
]
\widehat{\sum}= \left[ \begin{matrix} q_{11} & q_{12} & ... & q_{1n} \\ q_{21} & q_{22} & ... & q_{2n} \\ ... & ... & ... & ... \\ q_{n1} & q_{n2} & ... & q_{nn} \\ \end{matrix} \right]
∑
=⎣⎢⎢⎡q11q21...qn1q12q22...qn2............q1nq2n...qnn⎦⎥⎥⎤
= 1 m − 1 [ ∑ j = 1 m ( x 1 j − x ˉ 1 ) ( x 1 j − x ˉ 1 ) ∑ j = 1 m ( x 1 j − x ˉ 1 ) ( x 2 j − x ˉ 2 ) . . . ∑ j = 1 m ( x 1 j − x ˉ 1 ) ( x n j − x ˉ n ) ∑ j = 1 m ( x 2 j − x ˉ 2 ) ( x 1 j − x ˉ 1 ) ∑ j = 1 m ( x 2 j − x ˉ 2 ) ( x 2 j − x ˉ 2 ) . . . ∑ j = 1 m ( x 2 j − x ˉ 2 ) ( x n j − x ˉ n ) . . . . . . . . . . . . ∑ j = 1 m ( x n j − x ˉ n ) ( x 1 j − x ˉ 1 ) ∑ j = 1 m ( x n j − x ˉ n ) ( x 2 j − x ˉ 2 ) . . . ∑ j = 1 m ( x n j − x ˉ n ) ( x n j − x ˉ n ) ] = 1 m − 1 ∑ j = 1 m ( x . j − x ˉ ) ( x . j − x ˉ ) T =\frac{1}{m-1} \left[ \begin{matrix} \sum_{j=1}^{m} (x_{1j}-\bar{x}_1)(x_{1j}-\bar{x}_1)& \sum_{j=1}^{m} (x_{1j}-\bar{x}_1)(x_{2j}-\bar{x}_2) & ... & \sum_{j=1}^{m} (x_{1j}-\bar{x}_1)(x_{nj}-\bar{x}_n) \\ \sum_{j=1}^{m} (x_{2j}-\bar{x}_2)(x_{1j}-\bar{x}_1)& \sum_{j=1}^{m} (x_{2j}-\bar{x}_2)(x_{2j}-\bar{x}_2) & ... & \sum_{j=1}^{m} (x_{2j}-\bar{x}_2)(x_{nj}-\bar{x}_n) \\ ... & ... & ... & ... \\ \sum_{j=1}^{m} (x_{nj}-\bar{x}_n)(x_{1j}-\bar{x}_1)& \sum_{j=1}^{m} (x_{nj}-\bar{x}_n)(x_{2j}-\bar{x}_2) & ... & \sum_{j=1}^{m} (x_{nj}-\bar{x}_n)(x_{nj}-\bar{x}_n) \\ \end{matrix} \right] \\ = \frac{1}{m-1}\sum_{j=1}^{m}(\bm{x}_{.j}-\bm{\bar{x}})(\bm{x}_{.j}-\bm{\bar{x}})^T =m−11⎣⎢⎢⎡∑j=1m(x1j−xˉ1)(x1j−xˉ1)∑j=1m(x2j−xˉ2)(x1j−xˉ1)...∑j=1m(xnj−xˉn)(x1j−xˉ1)∑j=1m(x1j−xˉ1)(x2j−xˉ2)∑j=1m(x2j−xˉ2)(x2j−xˉ2)...∑j=1m(xnj−xˉn)(x2j−xˉ2)............∑j=1m(x1j−xˉ1)(xnj−xˉn)∑j=1m(x2j−xˉ2)(xnj−xˉn)...∑j=1m(xnj−xˉn)(xnj−xˉn)⎦⎥⎥⎤=m−11j=1∑m(x.j−xˉ)(x.j−xˉ)T
公式中 m m m为样本数量, x ˉ \bm{\bar{x}} xˉ为样本的均值,是一个列向量, x . j \bm{x}_{.j} x.j为第 j j j个样本,也是一个列向量。
在写程序计算样本的协方差矩阵时,我们通常用后一种向量形式计算。一个原因是代码更紧凑清晰,另一个原因是计算机对矩阵及向量运算有大量的优化,效率高于在代码中计算每个元素。
需要注意的是,协方差矩阵是计算样本不同维度之间的协方差,而不是对不同样本计算,所以协方差矩阵的大小与维度相同。
很多时候我们只关注不同维度间的线性关系,且要求这种线性关系可以互相比较。所以,在计算协方差矩阵之前,通常会对样本进行归一化,包括两部分:
y ⋅ j = x ⋅ j − x ˉ \bm{y_{⋅j}=x_{⋅j}−\bar{x}} y⋅j=x⋅j−xˉ。即对样本进行平移,使其重心在原点;
z i ⋅ = y i ⋅ / σ i \bm{z_{i⋅}=y_{i⋅}}/σ_i zi⋅=yi⋅/σi。其中 σ i σ_i σi是维度i的标准差。这样消除了数值大小的影响。
这样,协方差矩阵Σ^可以写成
∑
^
=
1
m
−
1
∑
j
=
1
m
z
⋅
j
z
⋅
j
T
\widehat{\sum}=\frac{1}{m−1}\sum_{j=1}^mz_{⋅j}z_{⋅j}^T
∑
=m−11∑j=1mz⋅jz⋅jT
该矩阵内的元素具有可比性。