部分参考[https://zhuanlan.zhihu.com/p/77151308],结合自己的一些理解和统计学习方法,补充了一些推导过程)
一、方差的定义
V
a
r
(
x
)
=
1
m
∑
i
=
1
m
(
x
i
−
μ
)
2
\begin{aligned} Var(x)=\frac{1}{m}\sum_{i=1}^m{(x_i-\mu)^2} \\ \end{aligned}
Var(x)=m1i=1∑m(xi−μ)2
去除均值,方便计算
x ← x − E [ x ] x\leftarrow x-E[x] x←x−E[x]
为了方便处理,我们将每个变量的均值都化为 0 ,因此方差可以直接用每个元素的平方和除以元素个数表示
V
a
r
(
x
)
=
1
m
∑
i
=
1
m
(
x
i
)
2
\begin{aligned} Var(x)=\frac{1}{m}\sum_{i=1}^m{(x_i)^2} \end{aligned}
Var(x)=m1i=1∑m(xi)2
二、协方差的定义
C o v ( x , y ) = 1 m ∑ i = 1 m ( x i − μ x ) ( y i − μ y ) \begin{aligned} Cov(x,y)=\frac{1}{m}\sum_{i=1}^m{(x_i-\mu_x)(y_i-\mu_y)} \\ \end{aligned} Cov(x,y)=m1i=1∑m(xi−μx)(yi−μy)
由于均值为 0,所以我们的协方差公式可以表示为:
C
o
v
(
x
,
y
)
=
1
m
∑
i
=
1
m
x
i
y
i
Cov(x,y)=\frac{1}{m}\sum_{i=1}^m{x_iy_i} \\
Cov(x,y)=m1i=1∑mxiyi
三、协方差矩阵
将
x
x
x和
y
y
y变量拼成一个矩阵
X
X
X
X
=
(
x
1
x
2
⋯
x
m
y
1
y
2
⋯
y
m
)
X=\begin{pmatrix} x_1 & x_2 & \cdots & x_m \\ y_1 & y_2 & \cdots & y_m \end{pmatrix} \\
X=(x1y1x2y2⋯⋯xmym)
那么计算协方差矩阵
Σ
=
1
m
X
X
T
=
(
1
m
∑
i
=
1
m
x
i
2
1
m
∑
i
=
1
m
x
i
y
i
1
m
∑
i
=
1
m
x
i
y
i
1
m
∑
i
=
1
m
y
i
2
)
=
(
C
o
v
(
x
,
x
)
C
o
v
(
x
,
y
)
C
o
v
(
y
,
x
)
C
o
v
(
y
,
y
)
)
\Sigma=\frac{1}{m}XX^\mathsf{T}= \begin{pmatrix} \frac{1}{m}\sum_{i=1}^m{x_i^2} & \frac{1}{m}\sum_{i=1}^m{x_iy_i} \\ \frac{1}{m}\sum_{i=1}^m{x_iy_i} & \frac{1}{m}\sum_{i=1}^m{y_i^2} \end{pmatrix} = \begin{pmatrix} Cov(x,x) & Cov(x,y) \\ Cov(y,x) & Cov(y,y) \end{pmatrix} \\
Σ=m1XXT=(m1∑i=1mxi2m1∑i=1mxiyim1∑i=1mxiyim1∑i=1myi2)=(Cov(x,x)Cov(y,x)Cov(x,y)Cov(y,y))
顺便说一下,
x
2
x^2
x2的期望也就是它与它自身的协方差,记为
C
x
C^x
Cx
E
(
x
2
)
=
1
m
∑
i
=
1
m
x
i
2
=
C
x
E(x^2)=\frac{1}{m}\sum_{i=1}^m{x_i^2}=C_{x}
E(x2)=m1i=1∑mxi2=Cx
四、方差最大化
-
假设原来有两个变量 x 1 , x 2 x_1,x_2 x1,x2,三个样本点分别为 A , B , C A,B,C A,B,C,样本分布在由 x 1 , x 2 x_1,x_2 x1,x2轴组成的坐标系中。
-
对坐标系进行旋转变换,得到新的坐标轴 y 1 y_1 y1,表示新的变量 y 1 y_1 y1
-
样本点 A , B , C A,B,C A,B,C在 y 1 y_1 y1轴上投影,得到 y 1 y_1 y1轴的坐标值为 A ’ , B ’ , C ’ A^{’},B^{’},C^{’} A’,B’,C’
-
坐标轴的平方和为 O A ’ 2 + O B ’ 2 + O C ’ 2 OA^{’2}+OB^{’2}+OC^{’2} OA’2+OB’2+OC’2表示样本在变量 y 1 y_1 y1上的方差和
-
主成分分析旨在选取正交变换中方差最大的变量,作为第一主成分,也就是旋转变换中坐标值平方和最大的轴
-
而我们知道,对于样本而言,本身的 O A 2 + O B 2 + O C 2 OA^{2}+OB^{2}+OC^{2} OA2+OB2+OC2为固有值,不变
-
因此可以通过勾股定理知道,方差最大 O A ’ 2 + O B ’ 2 + O C ’ 2 OA^{’2}+OB^{’2}+OC^{’2} OA’2+OB’2+OC’2最大等价于样本点到 y 1 y_1 y1轴的距离 A A ’ 2 + B B ’ 2 + C C ’ 2 AA^{’2}+BB^{’2}+CC^{’2} AA’2+BB’2+CC’2最小
基于PCA的线性结合的第一个主成分为
y
1
=
∑
k
=
1
n
ω
k
1
x
k
=
ω
1
T
x
\begin{aligned} y_1=\sum_{k=1}^n \omega_{k1}x_k=\omega_1^Tx \end{aligned}
y1=k=1∑nωk1xk=ω1Tx
那么最大化方差为
D
(
y
1
)
=
E
(
y
1
2
)
−
E
(
y
1
)
2
D(y_1)=E(y_1^2)-E(y_1)^2
D(y1)=E(y12)−E(y1)2
而经过了去掉均值化后,期望为0
E
(
y
1
)
=
E
(
∑
k
=
1
n
ω
k
1
x
k
)
=
E
(
ω
1
T
x
)
=
0
E(y_1)=E(\sum_{k=1}^n \omega_{k1}x_k)=E(\omega_1^Tx)=0
E(y1)=E(k=1∑nωk1xk)=E(ω1Tx)=0
去均值化期望为0的具体步骤如下,假设
x
k
x_k
xk为未去除均值的情况,均值为
μ
\mu
μ
E
(
∑
k
=
1
n
ω
k
1
x
k
)
=
ω
k
1
T
E
(
∑
k
=
1
n
x
k
)
→
ω
k
1
T
E
(
∑
k
=
1
n
(
x
k
−
μ
)
)
=
ω
k
1
T
(
E
(
∑
k
=
1
n
x
k
)
−
n
μ
)
=
0
E(\sum_{k=1}^n \omega_{k1}x_k)=\omega_{k1}^TE(\sum_{k=1}^n x_k)\\\rightarrow\omega_{k1}^TE(\sum_{k=1}^n (x_k-\mu))=\omega_{k1}^T(E(\sum_{k=1}^nx_k)-n\mu)=0
E(k=1∑nωk1xk)=ωk1TE(k=1∑nxk)→ωk1TE(k=1∑n(xk−μ))=ωk1T(E(k=1∑nxk)−nμ)=0
**例子:**再进一步理解一下期望的推导过程,看一下去均均值化的过程。纵轴为
x
2
x_2
x2,横轴为
x
1
x_1
x1
-
比如对于几个个样本点 ( 1 , 0 ) , ( 2 , 1 ) , ( 3 , 2 ) (1,0),(2,1),(3,2) (1,0),(2,1),(3,2)构成的直线来说,组成的直线方程为 x 1 − x 2 − 1 = 0 x_1-x_2-1=0 x1−x2−1=0,那么可以写成
x 1 − x 2 − 1 = ( − 1 , 1 , − 1 ) ( 1 , x 1 , x 2 ) T x_1-x_2-1=(-1,1,-1)(1,x_1,x_2)^T x1−x2−1=(−1,1,−1)(1,x1,x2)T
那么根据这几个样本点,计算他们的期望如下
E ( ∑ k = 1 n ω k 1 x k ) = ω k 1 T E ( ∑ k = 1 n x k ) = ( − 1 , 1 , − 1 ) E [ ∑ k = 1 1 1 , x 1 , x 2 ] T = ( − 1 , 1 , − 1 ) E [ ( 1 , 1 , 0 ) T + ( 1 , 2 , 1 ) T + ( 1 , 3 , 2 ) T ] = ( − 1 , 1 , − 1 ) E [ ( 3 , 6 , 3 ) T ] = 0 \begin{aligned} E(\sum_{k=1}^n \omega_{k1}x_k)&=\omega_{k1}^TE(\sum_{k=1}^n x_k) \\&=(-1,1,-1)E[\sum_{k=1}^{1}1,x_1,x_2]^T \\&=(-1,1,-1)E[(1,1,0)^T+(1,2,1)^T+(1,3,2)^T] \\&=(-1,1,-1)E[(3,6,3)^T] \\&=0 \end{aligned} E(k=1∑nωk1xk)=ωk1TE(k=1∑nxk)=(−1,1,−1)E[k=1∑11,x1,x2]T=(−1,1,−1)E[(1,1,0)T+(1,2,1)T+(1,3,2)T]=(−1,1,−1)E[(3,6,3)T]=0
因为这些样本点在直线上,期望肯定是0,这里看的是右面的部分,变量的期望,去均值化的时候目的是让 E E E中去均值后的 x x x为 0 0 0- 那么对于 x 1 x_1 x1和 x 2 x_2 x2,去掉他们的均值 2 2 2和 1 1 1后计算:
E ( ∑ k = 1 n ω k 1 x k ) → ω k 1 T E ( ∑ k = 1 n ( x k − μ ) ) = ( − 1 , 1 , − 1 ) E [ ∑ k = 1 1 1 − 1 , x 1 − 2 , x 2 − 1 ] T = ( − 1 , 1 , − 1 ) E [ ( 0 , − 1 , − 1 ) T + ( 0 , 0 , 0 ) T + ( 0 , 1 , 1 ) T ] = ( − 1 , 1 , − 1 ) E [ ( 0 , 0 , 0 ) T ] = 0 \begin{aligned} E(\sum_{k=1}^n \omega_{k1}x_k)&\rightarrow\omega_{k1}^TE(\sum_{k=1}^n (x_k-\mu)) \\&=(-1,1,-1)E[\sum_{k=1}^{1}1-1,x_1-2,x_2-1]^T \\&=(-1,1,-1)E[(0,-1,-1)^T+(0,0,0)^T+(0,1,1)^T] \\&=(-1,1,-1)E[(0,0,0)^T] \\&=0 \end{aligned} E(k=1∑nωk1xk)→ωk1TE(k=1∑n(xk−μ))=(−1,1,−1)E[k=1∑11−1,x1−2,x2−1]T=(−1,1,−1)E[(0,−1,−1)T+(0,0,0)T+(0,1,1)T]=(−1,1,−1)E[(0,0,0)T]=0
新的方程为 ( 1 ) ∗ ( x 1 − 2 ) + ( − 1 ) ∗ ( x 2 − 1 ) = 0 (1)*(x_1-2)+(-1)*(x_2-1)=0 (1)∗(x1−2)+(−1)∗(x2−1)=0,如果令 x 3 = x 1 − 2 , x 4 = x 2 − 1 x_3=x_1-2,x_4=x_2-1 x3=x1−2,x4=x2−1,通过去均值那么就得到了让直线经过了原点,去除了截距项,即 x 3 − x 4 = 0 x_3-x_4=0 x3−x4=0
那么回到(9)式,继续计算这个方差,有两种理解办法,过程是一样的
- 第一种根据方差与期望的关系,通过(10)(11)算式推得到 E ( y 1 ) = 0 E(y_1)=0 E(y1)=0从而最大化方差 D ( y 1 ) D(y_1) D(y1)等价于最大化 E ( y 1 2 ) E(y_1^2) E(y12)
- 第二种根据(2)的算式,期望为0,得到以下形式,结果是相同的
J
1
P
A
C
(
w
1
)
=
D
(
y
1
)
=
1
m
∑
i
=
1
m
(
x
1
T
w
)
2
=
1
m
∑
i
=
1
m
(
x
1
T
w
)
T
(
x
1
T
w
)
=
1
m
∑
i
=
1
m
w
T
x
1
x
1
T
w
=
w
T
(
1
m
∑
i
=
1
m
x
1
x
1
T
)
w
=
w
T
E
(
x
2
)
w
=
w
T
Σ
w
=
w
T
C
x
w
\begin{aligned} J_1^{PAC}(w_1)=D(y_1)&=\frac{1}{m}\sum_{i=1}^{m}(x_1^Tw)^2 \\& =\frac{1}{m}\sum_{i=1}^{m}(x_1^Tw)^T(x_1^Tw) \\ &=\frac{1}{m}\sum_{i=1}^{m}w^Tx_1x_1^Tw \\& = w^T(\frac{1}{m}\sum_{i=1}^{m}x_1x_1^T)w\\& =w^T E(x^2)w\\&=w^T\Sigma w\\&=w^TC_x w\end{aligned} \\
J1PAC(w1)=D(y1)=m1i=1∑m(x1Tw)2=m1i=1∑m(x1Tw)T(x1Tw)=m1i=1∑mwTx1x1Tw=wT(m1i=1∑mx1x1T)w=wTE(x2)w=wTΣw=wTCxw
最后得到的最优化问题是
m
a
x
:
w
T
C
x
w
s
.
t
:
w
T
w
=
1
max:w^TC_x w\\ s.t:w^Tw=1
max:wTCxws.t:wTw=1
五、均方误差最小化(MSE)
在方差最大化的图中,可以知道Variance+MSE=定值,因此二者是等价的,换一种思路通过均方误差最小化进行推导。
向量的投影
以该图的B点为例,设B点的坐标为 ( x 1 , x 2 ) (x_1,x_2) (x1,x2),其所代表的向量为 O B → = x → = ( x 1 , x 2 ) \overrightarrow{OB}=\overrightarrow{x}=(x_1,x_2) OB=x=(x1,x2),由于 y 1 = ∑ k = 1 n ω k 1 x k = ω 1 T x y_1=\sum_{k=1}^n \omega_{k1}x_k=\omega_1^Tx y1=∑k=1nωk1xk=ω1Tx,那么可以同样表示出直线的单位方向向量为 w → = ( w 1 , w 2 ) \overrightarrow{w}=(w_1,w_2) w=(w1,w2),(注:由于该直线过原点就没有写截距项1)那么先算 x → \overrightarrow{x} x向量和 w → \overrightarrow{w} w向量的夹角 θ \theta θ.
由于
w
T
w
=
1
w^Tw=1
wTw=1,即
∣
w
→
∣
=
1
|\overrightarrow{w}|=1
∣w∣=1,可以继续化简为:
c
o
s
θ
=
x
→
w
→
∣
x
→
∣
∣
w
→
∣
=
x
→
w
→
∣
x
→
∣
\begin{aligned} cos\theta&=\frac {\overrightarrow{x}\overrightarrow{w}}{|\overrightarrow{x}||\overrightarrow{w}|}\\&=\frac {\overrightarrow{x}\overrightarrow{w}}{|\overrightarrow{x}|} \end{aligned}
cosθ=∣x∣∣w∣xw=∣x∣xw
那么
O
B
′
OB'
OB′的长度为
O
B
’
=
O
B
∗
c
o
s
θ
=
∣
x
→
∣
∗
x
→
w
→
∣
x
→
∣
=
x
→
w
→
OB^{’}=OB*cos\theta=|\overrightarrow{x}|*\frac {\overrightarrow{x}\overrightarrow{w}}{|\overrightarrow{x}|} =\overrightarrow{x}\overrightarrow{w}
OB’=OB∗cosθ=∣x∣∗∣x∣xw=xw
那么
O
B
′
OB'
OB′的方向为
w
→
∣
w
→
∣
=
w
→
\frac{\overrightarrow{w}}{|\overrightarrow{w}|}=\overrightarrow{w}
∣w∣w=w
因此
O
B
′
OB'
OB′的向量为
O
B
’
→
=
x
→
w
→
∗
w
→
\overrightarrow{OB^{’}}=\overrightarrow{x}\overrightarrow{w}*\overrightarrow{w}
OB’=xw∗w
在这个部分,我们的目标是最小化均方误差,也就是
m
i
n
(
A
A
’
2
+
B
B
’
2
+
C
C
’
2
)
min(AA^{’2}+BB^{’2}+CC^{’2})
min(AA’2+BB’2+CC’2)
下一步就是表示出
B
’
B
→
\overrightarrow{B^{’}B}
B’B,由向量的知识,(方向换一下没事,因为还要平方)可以得到
B
’
B
→
=
O
B
→
−
O
B
′
→
=
x
→
−
x
→
w
→
∗
w
→
=
x
−
(
w
T
x
)
w
\begin{aligned} \overrightarrow{B^{’}B}&=\overrightarrow{OB}-\overrightarrow{OB'}\\&=\overrightarrow{x}-\overrightarrow{x}\overrightarrow{w}*\overrightarrow{w}\\&=x-(w^Tx)w \end{aligned}
B’B=OB−OB′=x−xw∗w=x−(wTx)w
因此目标为
J
M
S
E
P
C
A
=
E
(
∣
∣
x
−
∑
i
=
1
m
(
w
i
T
x
)
w
i
∣
∣
2
)
=
E
(
∣
∣
x
∣
∣
2
)
−
2
E
(
x
T
∑
i
=
1
m
(
w
i
T
x
)
w
i
)
+
E
(
∑
i
=
1
m
(
(
w
i
T
x
)
w
i
)
2
)
=
E
(
∣
∣
x
∣
∣
2
)
−
2
w
T
E
(
∑
i
=
1
m
(
x
T
x
)
2
)
w
+
E
(
(
∑
i
=
1
m
(
(
w
i
T
x
)
w
i
)
T
∗
(
w
i
T
x
)
w
i
)
=
E
(
∣
∣
x
∣
∣
2
)
−
2
w
T
E
(
∑
i
=
1
m
(
x
T
x
)
2
)
w
+
w
T
E
(
∑
i
=
1
m
(
x
T
x
)
2
)
w
=
E
(
∣
∣
x
∣
∣
2
)
−
w
T
E
(
∑
i
=
1
m
(
x
T
x
)
2
)
w
=
t
r
a
c
e
(
C
x
)
−
w
T
C
x
w
\begin{aligned} J_{MSE}^{PCA}&=E(\vert\vert x-\sum_{i=1}^{m}(w_i^Tx)w_i \vert\vert^2) \\&=E(\vert\vert x\vert\vert^2)-2E(x^T\sum_{i=1}^{m}(w_i^Tx)w_i)+E(\sum_{i=1}^{m}((w_i^Tx)w_i)^2) \\&=E(\vert\vert x\vert\vert^2)-2w^TE(\sum_{i=1}^{m}(x^Tx)^2)w+E((\sum_{i=1}^{m}((w_i^Tx)w_i)^T*(w_i^Tx)w_i) \\&=E(\vert\vert x\vert\vert^2)-2w^TE(\sum_{i=1}^{m}(x^Tx)^2)w+w^TE(\sum_{i=1}^{m}(x^Tx)^2)w \\&=E(\vert\vert x\vert\vert^2)-w^TE(\sum_{i=1}^{m}(x^Tx)^2)w \\&=trace(C_x)-w^TC_x w \end{aligned}
JMSEPCA=E(∣∣x−i=1∑m(wiTx)wi∣∣2)=E(∣∣x∣∣2)−2E(xTi=1∑m(wiTx)wi)+E(i=1∑m((wiTx)wi)2)=E(∣∣x∣∣2)−2wTE(i=1∑m(xTx)2)w+E((i=1∑m((wiTx)wi)T∗(wiTx)wi)=E(∣∣x∣∣2)−2wTE(i=1∑m(xTx)2)w+wTE(i=1∑m(xTx)2)w=E(∣∣x∣∣2)−wTE(i=1∑m(xTx)2)w=trace(Cx)−wTCxw
由于协方差
C
x
C_x
Cx是定值,因此
w
T
C
x
w
w^TC_x w
wTCxw越大,均方误差越小。
即得到的最优化问题为:
m
a
x
:
w
T
C
x
w
s
.
t
:
w
T
w
=
1
max:w^TC_x w\\ s.t:w^Tw=1
max:wTCxws.t:wTw=1
六、求解最优化问题
根据拉格朗日方程:
L
(
w
,
λ
)
=
w
T
C
x
w
−
λ
(
w
T
w
−
1
)
L(w,\lambda)=w^TC_x w-\lambda(w^Tw-1)
L(w,λ)=wTCxw−λ(wTw−1)
那么对w求导可以得到
2
C
x
w
−
2
λ
w
=
0
2C_xw-2\lambda w=0
2Cxw−2λw=0
这意味着协方差的特征值是
λ
\lambda
λ
因此
C
x
w
=
λ
w
C_xw=\lambda w
Cxw=λw代入后有
w
T
C
x
w
=
w
T
(
C
x
w
)
=
w
T
λ
w
=
λ
w
T
w
=
λ
w^TC_x w=w^T(C_x w)=w^T\lambda w=\lambda w^Tw=\lambda
wTCxw=wT(Cxw)=wTλw=λwTw=λ
即寻找最大的特征值
λ
\lambda
λ即为所求。
那么从大到小排列,便得到了各个主成分。
高维小样本数据集的PCA方法预降维度方法及相关公式
-
例如: x i ∈ R n , i = 1 , 2 , … , k . x_i∈R^n, i=1,2,…,k. xi∈Rn,i=1,2,…,k.
-
这意味着在n很大的情况下, C x ∈ R ( n × n ) C_x∈R^{(n×n)} Cx∈R(n×n) ,协方差矩阵太大并且不可逆很难分解
-
因此要采用预处理降维度的办法
w 1 = x 1 w 1 = w 1 / ‖ w 1 ‖ w 2 = x 2 − ( w 1 T x 2 ) w 1 , w 2 = w 2 / ‖ w 2 ‖ … … w k = x k − ∑ ( j = 1 ) ( k − 1 ) ( w j T x k ) w j , w k = w k / ‖ w k ‖ \begin{aligned} w_1=x_1 w_1=w_1/‖w_1 ‖\\ w_2=x_2−(w_1^T x_2)w_1,w_2=w_2/‖w_2 ‖\\ ……\\ w_k=x_k−∑_{(j=1)}^{(k−1)}(w_j^T x_k)w_j , w_k=w_k/‖w_k ‖ \end{aligned} w1=x1w1=w1/‖w1‖w2=x2−(w1Tx2)w1,w2=w2/‖w2‖……wk=xk−(j=1)∑(k−1)(wjTxk)wj,wk=wk/‖wk‖