主成分分析(principal component analysis,PCA)是一种常用的 无监督学习方法,把由 线性相关变量表示的观测数据 转换为少数几个由线性无关变量表示的数据, 线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于 降维方法。
基本思想
首先,对数据进行规范化,平均值为0,方差为1.
之后,对数据进行正交变换,通过正交变换变成由若干个线性无关的新变量表示的数据。
新变量是可能的正交变换中变量的方差的和最大的,即信息保存的最多的。
主成分
考虑有
m
m
m维随机变量
x
=
(
x
1
,
x
2
,
⋯
,
x
m
)
T
\boldsymbol { x } = \left( x _ { 1 } , x _ { 2 } , \cdots , x _ { m } \right) ^ { \mathrm { T } }
x=(x1,x2,⋯,xm)T到
m
m
m维随机变量
y
=
(
y
1
,
y
2
,
⋯
,
y
m
)
T
\boldsymbol { y } = \left( y _ { 1 } , y _ { 2 } , \cdots , y _ { m } \right) ^ { \mathrm { T } }
y=(y1,y2,⋯,ym)T的线性变换
y
i
=
α
i
T
x
=
α
1
i
x
1
+
α
2
i
x
2
+
⋯
+
α
m
i
x
m
y _ { i } = \alpha _ { i } ^ { \mathrm { T } } \boldsymbol { x } = \alpha _ { 1 i } x _ { 1 } + \alpha _ { 2 i } x _ { 2 } + \cdots + \alpha _ { m i } x _ { m }
yi=αiTx=α1ix1+α2ix2+⋯+αmixm
由随机变量的性质可知,
E
(
y
i
)
=
α
i
T
μ
,
i
=
1
,
2
,
⋯
,
m
var
(
y
i
)
=
α
i
T
Σ
α
i
,
i
=
1
,
2
,
⋯
,
m
cov
(
y
i
,
y
j
)
=
α
i
T
Σ
α
j
,
i
=
1
,
2
,
⋯
,
m
;
j
=
1
,
2
,
⋯
,
m
\begin{array} { l } E \left( y _ { i } \right) = \alpha _ { i } ^ { \mathrm { T } } \mu , \quad i = 1,2 , \cdots , m \\ \operatorname { var } \left( y _ { i } \right) = \alpha _ { i } ^ { \mathrm { T } } \Sigma \alpha _ { i } , \quad i = 1,2 , \cdots , m \\ \operatorname { cov } \left( y _ { i } , y _ { j } \right) = \alpha _ { i } ^ { \mathrm { T } } \Sigma \alpha _ { j } , \quad i = 1,2 , \cdots , m ; \quad j = 1,2 , \cdots , m \end{array}
E(yi)=αiTμ,i=1,2,⋯,mvar(yi)=αiTΣαi,i=1,2,⋯,mcov(yi,yj)=αiTΣαj,i=1,2,⋯,m;j=1,2,⋯,m
主成分定义,给定一个线性变换,如果满足下列条件:
(1)系数向量
α
i
T
\alpha _ { i } ^ { \mathrm { T } }
αiT是单位向量,即
α
i
T
α
i
=
1
,
i
=
1
,
2
,
⋯
,
m
\alpha _ { i } ^ { \mathrm { T } } \alpha _ { i } = 1 , i = 1,2 , \cdots , m
αiTαi=1,i=1,2,⋯,m;
(2)变量
y
i
y_i
yi和
y
j
y_j
yj互不相关,即
cov
(
y
i
,
y
j
)
=
0
(
i
≠
j
)
\operatorname { cov } \left( y _ { i } , y _ { j } \right) = 0 ( i \neq j )
cov(yi,yj)=0(i=j);
(3)
y
i
y_i
yi是与
y
1
,
y
2
,
⋯
,
y
i
−
1
(
i
=
1
,
2
,
.
.
.
,
m
)
y _ { 1 } , y _ { 2 } , \cdots , y _ { i - 1 } \quad (i = 1,2, ..., m)
y1,y2,⋯,yi−1(i=1,2,...,m)都互不相关的
x
\boldsymbol { x }
x的所有线性变换中方差最大的,这时分别称
y
1
,
y
2
,
⋯
,
y
m
y _ { 1 } , y _ { 2 } , \cdots , y _ { m }
y1,y2,⋯,ym为
x
\boldsymbol { x }
x的第一主成分、第二主成分、…、第
m
m
m主成分。
主要性质
设
x
\boldsymbol { x }
x是
m
m
m维随机变量,
Σ
\Sigma
Σ是
x
\boldsymbol { x }
x的协方差矩阵,
Σ
\Sigma
Σ的特征值分别是
λ
1
⩾
λ
2
⩾
⋯
⩾
λ
m
⩾
0
\lambda _ { 1 } \geqslant \lambda _ { 2 } \geqslant \cdots \geqslant \lambda _ { m } \geqslant 0
λ1⩾λ2⩾⋯⩾λm⩾0特征值对应的单位特征向量分别是
α
1
,
α
2
,
⋯
,
α
m
\alpha _ { 1 } , \alpha _ { 2 } , \cdots , \alpha _ { m }
α1,α2,⋯,αm,则
x
\boldsymbol { x }
x的第
k
k
k主成分是
y
k
=
α
k
T
x
=
α
1
k
x
1
+
α
2
k
x
2
+
⋯
+
α
m
k
x
m
,
k
=
1
,
2
,
⋯
,
m
y _ { k } = \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } = \alpha _ { 1 k } x _ { 1 } + \alpha _ { 2 k } x _ { 2 } + \cdots + \alpha _ { m k } x _ { m } , \quad k = 1,2 , \cdots , m
yk=αkTx=α1kx1+α2kx2+⋯+αmkxm,k=1,2,⋯,m
x
\boldsymbol { x }
x的第
k
k
k主成分的方差是
var
(
y
k
)
=
α
k
T
Σ
α
k
=
λ
k
,
k
=
1
,
2
,
⋯
,
m
\operatorname { var } \left( y _ { k } \right) = \alpha _ { k } ^ { \mathrm { T } } \Sigma \alpha _ { k } = \lambda _ { k } , \quad k = 1,2 , \cdots , m
var(yk)=αkTΣαk=λk,k=1,2,⋯,m
即协方差矩阵
Σ
\Sigma
Σ的第
k
k
k个特征值。
求第一主成分就是求解约束最优化问题:
max
α
1
α
1
T
Σ
α
1
s.t.
α
1
T
α
1
=
1
\begin{array} { l l } \max _ { \alpha _ { 1 } } & \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } \\ \text { s.t. } & \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = 1 \end{array}
maxα1 s.t. α1TΣα1α1Tα1=1
α
1
T
x
\alpha _ { 1 } ^ { \mathrm { T } } x
α1Tx构成第一主成分,其方差等于协方差矩阵的最大特征值
var
(
α
1
T
x
)
=
α
1
T
Σ
α
1
=
λ
1
\operatorname { var } \left( \alpha _ { 1 } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \lambda _ { 1 }
var(α1Tx)=α1TΣα1=λ1
求解过程
定义拉格朗日函数 α 1 T Σ α 1 − λ ( α 1 T α 1 − 1 ) \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } - \lambda \left( \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } - 1 \right) α1TΣα1−λ(α1Tα1−1),对其求导得到 Σ α 1 − λ α 1 = 0 \Sigma \alpha _ { 1 } - \lambda \alpha _ { 1 } = 0 Σα1−λα1=0,于是目标函数 α 1 T Σ α 1 = α 1 T λ α 1 = λ α 1 T α 1 = λ \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \alpha _ { 1 } ^ { \mathrm { T } } \lambda \alpha _ { 1 } = \lambda \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = \lambda α1TΣα1=α1Tλα1=λα1Tα1=λ
求解第二主成分需要求解约束最优化问题
max
α
2
α
2
T
Σ
α
2
s.t.
α
1
T
Σ
α
2
=
0
,
α
2
T
Σ
α
1
=
0
α
2
T
α
2
=
1
\begin{aligned} \max _ { \alpha _ { 2 } } & \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } \\ \text { s.t. } & \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = 0 , \quad \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = 0 \\ & \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } = 1 \end{aligned}
α2max s.t. α2TΣα2α1TΣα2=0,α2TΣα1=0α2Tα2=1
α
2
T
x
\alpha _ { 2 } ^ { \mathrm { T } } x
α2Tx构成第二主成分,其方差等于协方差矩阵的第二大特征值,
var
(
α
2
T
x
)
=
α
2
T
Σ
α
2
=
λ
2
\operatorname { var } \left( \alpha _ { 2 } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \lambda _ { 2 }
var(α2Tx)=α2TΣα2=λ2
求解过程
α 1 T Σ α 2 = α 2 T Σ α 1 = α 2 T λ 1 α 1 = λ 1 α 2 T α 1 = λ 1 α 1 T α 2 \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \alpha _ { 2 } ^ { \mathrm { T } } \lambda _ { 1 } \alpha _ { 1 } = \lambda _ { 1 } \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } = \lambda _ { 1 } \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } α1TΣα2=α2TΣα1=α2Tλ1α1=λ1α2Tα1=λ1α1Tα2,以及 α 1 T α 2 = 0 , α 2 T α 1 = 0 \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } = 0 , \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } = 0 α1Tα2=0,α2Tα1=0
定义拉格朗日函数 α 2 T Σ α 2 − λ ( α 2 T α 2 − 1 ) − ϕ α 2 T α 1 \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } - \lambda \left( \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } - 1 \right) - \phi \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } α2TΣα2−λ(α2Tα2−1)−ϕα2Tα1,求导得 2 Σ α 2 − 2 λ α 2 − ϕ α 1 = 0 2 \Sigma \alpha _ { 2 } - 2 \lambda \alpha _ { 2 } - \phi \alpha _ { 1 } = 0 2Σα2−2λα2−ϕα1=0
左乘 α 1 T \alpha_1^T α1T有, 2 α 1 T Σ α 2 − 2 λ α 1 T α 2 − ϕ α 1 T α 1 = 0 2 \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } - 2 \lambda \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } - \phi \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = 0 2α1TΣα2−2λα1Tα2−ϕα1Tα1=0,前两项为0,导出 ϕ = 0 \phi = 0 ϕ=0
因此 Σ α 2 − λ α 2 = 0 \Sigma \alpha _ { 2 } - \lambda \alpha _ { 2 } = 0 Σα2−λα2=0,于是有 α 2 T Σ α 2 = α 2 T λ α 2 = λ α 2 T α 2 = λ \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \alpha _ { 2 } ^ { \mathrm { T } } \lambda \alpha _ { 2 } = \lambda \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } = \lambda α2TΣα2=α2Tλα2=λα2Tα2=λ
一般地,第
k
k
k主成分的方差等于
Σ
\Sigma
Σ的第
k
k
k个特征值,
var
(
α
k
T
x
)
=
α
k
T
Σ
α
k
=
λ
k
\operatorname { var } \left( \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { k } ^ { \mathrm { T } } \Sigma \alpha _ { k } = \lambda _ { k }
var(αkTx)=αkTΣαk=λk
下面叙述总体主成分的性质:
(1) 总体主成分
y
\boldsymbol { y }
y的协方差矩阵是对角矩阵
cov
(
y
)
=
Λ
=
diag
(
λ
1
,
λ
2
,
⋯
,
λ
m
)
\operatorname { cov } ( \boldsymbol { y } ) = \Lambda = \operatorname { diag } \left( \lambda _ { 1 } , \lambda _ { 2 } , \cdots , \lambda _ { m } \right)
cov(y)=Λ=diag(λ1,λ2,⋯,λm)
推导:
Σ α k = λ k α k , k = 1 , 2 , ⋯ , m Σ A = A Λ Σ = A Λ A T y = A T x \Sigma \alpha _ { k } = \lambda _ { k } \alpha _ { k } , \quad k = 1,2 , \cdots , m \\ \Sigma A = A \Lambda \quad \Sigma = A \Lambda A ^ { \mathrm { T } } \quad \boldsymbol { y } = A ^ { \mathrm { T } } \boldsymbol { x } Σαk=λkαk,k=1,2,⋯,mΣA=AΛΣ=AΛATy=ATx
(2) 总体主成分
y
\boldsymbol { y }
y的方差之和等于随机变量x的方差之和,即
∑
i
=
1
m
λ
i
=
∑
i
=
1
m
σ
i
i
\sum _ { i = 1 } ^ { m } \lambda _ { i } = \sum _ { i = 1 } ^ { m } \sigma _ { i i }
i=1∑mλi=i=1∑mσii
(3) 第
k
k
k个主成分
y
k
y_k
yk与变量
x
i
x_i
xi的相关系数
ρ
(
y
k
,
x
i
)
\rho \left( y _ { k } , x _ { i } \right)
ρ(yk,xi)称为因子负荷量(factor loading),它表示第
k
k
k分主成分
y
k
y_k
yk与变量
x
i
x_i
xi的相关关系。计算公式如下:
ρ
(
y
k
,
x
i
)
=
cov
(
y
k
,
x
i
)
var
(
y
k
)
var
(
x
i
)
=
cov
(
α
k
T
x
,
e
i
T
x
)
λ
k
σ
i
i
=
λ
k
α
i
k
σ
i
i
,
k
,
i
=
1
,
2
,
⋯
,
m
\rho \left( y _ { k } , x _ { i } \right) = \frac { \operatorname { cov } \left( y _ { k } , x _ { i } \right) } { \sqrt { \operatorname { var } \left( y _ { k } \right) \operatorname { var } \left( x _ { i } \right) } } = \frac { \operatorname { cov } \left( \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } , e _ { i } ^ { \mathrm { T } } \boldsymbol { x } \right) } { \sqrt { \lambda _ { k } } \sqrt { \sigma _ { i i } } } = \frac { \sqrt { \lambda _ { k } } \alpha _ { i k } } { \sqrt { \sigma _ { i i } } } , \quad k , i = 1,2 , \cdots , m
ρ(yk,xi)=var(yk)var(xi)cov(yk,xi)=λkσiicov(αkTx,eiTx)=σiiλkαik,k,i=1,2,⋯,m
(4) 第
k
k
k个主成分
y
k
y_k
yk与
m
m
m个变量的因子负荷量满足
∑
i
=
1
m
σ
i
i
ρ
2
(
y
k
,
x
i
)
=
∑
i
=
1
m
λ
k
α
i
k
2
=
λ
k
α
k
T
α
k
=
λ
k
\sum _ { i = 1 } ^ { m } \sigma _ { i i } \rho ^ { 2 } \left( y _ { k } , x _ { i } \right) = \sum _ { i = 1 } ^ { m } \lambda _ { k } \alpha _ { i k } ^ { 2 } = \lambda _ { k } \alpha _ { k } ^ { \mathrm { T } } \alpha _ { k } = \lambda _ { k }
i=1∑mσiiρ2(yk,xi)=i=1∑mλkαik2=λkαkTαk=λk
主成分个数
主成分分析的主要目的是降维,对任意正整数
q
,
1
⩽
q
⩽
m
q , 1 \leqslant q \leqslant m
q,1⩽q⩽m,考虑正交线性变换
y
=
B
T
x
\boldsymbol { y } = B ^ { \mathrm { T } } \boldsymbol { x }
y=BTx
其中
y
\boldsymbol { y }
y是
q
q
q维向量,
B
T
B ^ { \mathrm { T } }
BT是
q
×
m
q \times m
q×m矩阵,令
y
\boldsymbol { y }
y的协方差矩阵为
Σ
y
=
B
T
Σ
B
\Sigma _ { \boldsymbol { y } } = B ^ { \mathrm { T } } \Sigma B
Σy=BTΣB
则
Σ
y
\Sigma _ { \boldsymbol { y } }
Σy的迹
tr
(
Σ
y
)
\operatorname { tr } \left( \Sigma _ { \boldsymbol { y } } \right)
tr(Σy)在
B
=
A
q
B = A_q
B=Aq时取得最大值,其中矩阵
A
q
A_q
Aq由正交矩阵
A
A
A的前
q
q
q列组成。
第
k
k
k主成分
y
k
y_k
yk的方差贡献率定义为
y
k
y_k
yk的方差与所有方差之和的比,记作
η
k
\eta _ { k }
ηk
η
k
=
λ
k
∑
i
=
1
m
λ
i
\eta _ { k } = \frac { \lambda _ { k } } { \sum _ { i = 1 } ^ { m } \lambda _ { i } }
ηk=∑i=1mλiλk
k
k
k个主成分
y
1
,
y
2
,
⋯
,
y
k
y _ { 1 } , y _ { 2 } , \cdots , y _ { k }
y1,y2,⋯,yk的累计方差贡献率定义为
k
k
k个方差之和与所有方差之和的比
∑
i
=
1
k
η
i
=
∑
i
=
1
k
λ
i
∑
i
=
1
m
λ
i
\sum _ { i = 1 } ^ { k } \eta _ { i } = \frac { \sum _ { i = 1 } ^ { k } \lambda _ { i } } { \sum _ { i = 1 } ^ { m } \lambda _ { i } }
i=1∑kηi=∑i=1mλi∑i=1kλi
累计方差贡献率放映了主成分保留信息的比例。
在实际问题中,不同变量可能有不同的量纲,常常对各个随机变量实施规范化,使其均值为0,方差为1。显然规范化随机变量的协方差矩阵就是相关矩阵
R
R
R。