一、简介
主成分分析是一种常用的无监督学习方法,这一方法利用正交变换(在线性代数中,正交变换是线性变换的一种。对一个由空间 R n R^n Rn投射到同一空间 R n R^n Rn的线性转换,如果转换后的向量长度与转换前的长度相同,则为正交变换)把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。
主成分分析中,首先对给定数据进行规范化[1],使得数据每一变量的平均值为0,方差为1。之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。新变量是可能的正交变换中 变量的方差的和(即信息保存)最大的,方差表示在新变量上的信息大小。将新变量依次称为第一主成分、第二主成分等,这就是主成分分析的基本思想。
直观解释:数据集合中的样本由实数空间(正交坐标系)中的点表示,空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近。对原坐标系中的数据进行主成分分析就等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上;新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分、第二主成分等,数据在每一轴上的坐标值的平方表示相应变量的方差;并且,这个坐标系是在所有的新的坐标系中,坐标轴上的方差的和最大的。
主成分的选取:在旋转变换后的所有坐标系中,主成分分析先选择方差最大的方向作为新坐标系的第一坐标轴,即第一主成分;然后选择与第一坐标轴正交,且方差最大的方向作为第二坐标轴,即第二主成分,以此类推。
不妨设样本点 A A A、 B B B,在新坐标轴的上的投影是 A ∗ A^* A∗、 B ∗ B^* B∗,那么 ∣ O A ∗ ∣ 2 + ∣ O B ∗ ∣ 2 |OA^*|^2+|OB^*|^2 ∣OA∗∣2+∣OB∗∣2就是样本在新坐标轴上的方差和。主成分分析就是选取在所有的坐标轴中,使 ∣ O A ∗ ∣ 2 + ∣ O B ∗ ∣ 2 |OA^*|^2+|OB^*|^2 ∣OA∗∣2+∣OB∗∣2最大的那个坐标轴作为第一坐标轴。而 ∣ O A ∣ 2 + ∣ O B ∣ 2 |OA|^2+|OB|^2 ∣OA∣2+∣OB∣2是不变的,结合勾股定理, ∣ O A ∗ ∣ 2 + ∣ O B ∗ ∣ 2 |OA^*|^2+|OB^*|^2 ∣OA∗∣2+∣OB∗∣2最大等价于 ∣ A A ∗ ∣ 2 + ∣ B B ∗ ∣ 2 |AA^*|^2+|BB^*|^2 ∣AA∗∣2+∣BB∗∣2最小,所以等价的,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴作为第一主成分,第二坐标轴等的选取,在保证与已选坐标轴正交的条件下,类似的进行。
二、定义和导出
假设
x
=
(
x
1
,
x
2
,
⋯
,
x
m
)
T
\bm{x} = (x_1, x_2, \cdots, x_m)^T
x=(x1,x2,⋯,xm)T是
m
m
m维随机变量,其均值
μ
\bm \mu
μ是
μ
=
E
(
x
)
=
(
μ
1
,
μ
2
,
⋯
,
μ
m
)
T
\bm \mu = E(\bm x) = (\mu_1, \mu_2, \cdots, \mu_m)^T
μ=E(x)=(μ1,μ2,⋯,μm)T
其协方差矩阵
Σ
\Sigma
Σ是
Σ
=
c
o
v
(
x
,
x
)
=
E
[
(
x
−
μ
)
(
x
−
μ
)
T
]
\Sigma = cov(\bm x, \bm x)=E[(\bm x - \bm \mu)(\bm x - \bm \mu)^T]
Σ=cov(x,x)=E[(x−μ)(x−μ)T]
考虑由
m
m
m维随机变量
x
\bm x
x到
m
m
m维随机变量
y
=
(
y
1
,
y
2
,
⋯
,
y
m
)
T
\bm y = (y_1, y_2, \cdots, y_m)^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^T\bm x=\alpha_{1i}x_1 + \alpha_{2i}x_2 + \cdots + \alpha_{mi}x_m
yi=αiTx=α1ix1+α2ix2+⋯+αmixm
其中,
α
i
T
=
(
α
1
i
,
α
2
i
,
⋯
,
α
m
i
)
,
i
=
1
,
2
,
⋯
,
m
\alpha_i^T = (\alpha_{1i}, \alpha_{2i}, \cdots, \alpha_{mi}), i = 1, 2, \cdots, m
αiT=(α1i,α2i,⋯,αmi),i=1,2,⋯,m
那么,由随机变量的性质可知: E ( y i ) = α i T μ , i = 1 , 2 , ⋯ , m E(y_i) = \alpha_i^T\mu, i = 1, 2, \cdots, m E(yi)=αiTμ,i=1,2,⋯,m v a r ( y i ) = α i T Σ α i , i = 1 , 2 , ⋯ , m var(y_i)=\alpha_i^T\Sigma\alpha_i, i = 1, 2, \cdots, m var(yi)=αiTΣαi,i=1,2,⋯,m c o v ( y i , y j ) = α i T Σ α j , i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , m cov(y_i, y_j) = \alpha_i^T\Sigma\alpha_j, i = 1, 2, \cdots, m; j = 1, 2, \cdots, m cov(yi,yj)=αiTΣαj,i=1,2,⋯,m;j=1,2,⋯,m
2.1 定义
给定上述的线性变换,如果满足:
- 系数向量 α i T \alpha_i^T αiT是单位向量,即 α i T α i = 1 , i = 1 , 2 , ⋯ , m \alpha_i^T\alpha_i=1, i = 1, 2, \cdots, m αiTαi=1,i=1,2,⋯,m
- 变量 y i y_i yi与变量 y j y_j yj互不相关,即 c o v ( y i , y j ) = 0 ( i ! = j ) cov(y_i, y_j) = 0(i != j) cov(yi,yj)=0(i!=j)
- 变量 y 1 y_1 y1是 x \bm x x的所有线性变换中方差最大的; y 2 y_2 y2是与 y 1 y_1 y1不相关的 x \bm x x的所有线性变换中方差最大的;一般的, y i y_i yi是与 y 1 , y 2 , ⋯ , y i − 1 y_1, y_2, \cdots, y_{i-1} y1,y2,⋯,yi−1都不相关的 x \bm x x的所有线性变换中方差最大的;
这时分别称 y 1 , y 2 , ⋯ , y m y_1, y_2, \cdots, y_m y1,y2,⋯,ym为 x \bm x x的第一主成分、第二主成分、……、第 m m m主成分。
2.2 导出
上述条件1表明线性变换是正交变换, α 1 , α 2 , ⋯ , α m \alpha_1, \alpha_2, \cdots, \alpha_m α1,α2,⋯,αm是其一组标准正交基: α i T α i = { 1 , i = j 0 , i ≠ j \alpha_i^T\alpha_i=\begin{cases} 1, i = j \\ 0, i \ne j \end{cases} αiTαi={1,i=j0,i=j
条件2和3则给出了求主成分的方法:
- 在 x \bm x x的所有线性变换 α 1 T x = ∑ i = 1 m α i 1 x i \alpha_1^T\bm x=\sum_{i=1}^m\alpha_{i1}x_i α1Tx=∑i=1mαi1xi中,在 α 1 T α 1 = 1 \alpha_1^T\alpha_1=1 α1Tα1=1的条件下,求方差最大的,得到 x \bm x x的第一主成分;
- 在与 α 1 T x \alpha_1^T\bm x α1Tx不相关的 x \bm x x的所有线性变换 α 2 T x = ∑ i = 1 m α i 2 x i \alpha_2^T\bm x=\sum_{i=1}^m\alpha_{i2}x_i α2Tx=∑i=1mαi2xi中, α 2 T α 2 = 1 \alpha_2^T\alpha_2=1 α2Tα2=1的条件下,求方差最大的,得到 x \bm x x的第二主成分;
- 在第 k k k步,在与 α 1 T x , α 2 T x , ⋯ , α k − 1 T x \alpha_1^T\bm x, \alpha_2^T\bm x, \cdots, \alpha_{k-1}^T\bm x α1Tx,α2Tx,⋯,αk−1Tx不相关的 x \bm x x的所有线性变换 α k T x = ∑ i = 1 m α i k x i \alpha_k^T\bm x=\sum_{i=1}^m\alpha_{ik}x_i αkTx=∑i=1mαikxi中, α k T α k = 1 \alpha_k^T\alpha_k=1 αkTαk=1的条件下,求方差最大的,得到 x \bm x x的第 k k k主成分;
- 直到得到 x \bm x x的第 m m m主成分
2.3 主要性质
设
x
\bm x
x是
m
m
m维随机变量,
Σ
\Sigma
Σ是
x
\bm x
x的协方差矩阵,
Σ
\Sigma
Σ的特征值分别是
λ
1
≥
λ
2
≥
⋯
λ
m
≥
0
\lambda_1\ge\lambda_2\ge\cdots\lambda_m\ge0
λ1≥λ2≥⋯λm≥0,特征值对应的特征向量分别是
α
1
,
α
2
,
⋯
,
α
m
\alpha_1, \alpha_2, \cdots, \alpha_m
α1,α2,⋯,αm,则
x
\bm x
x的第
k
k
k主成分是
y
k
=
α
k
T
x
=
α
1
k
x
1
+
α
12
k
x
2
+
⋯
+
α
m
k
x
m
,
k
=
1
,
2
,
⋯
,
m
y_k=\alpha_k^T\bm x=\alpha_{1k}x_1+\alpha_{12k}x_2+\cdots+\alpha_{mk}x_m, k = 1, 2, \cdots, m
yk=αkTx=α1kx1+α12kx2+⋯+αmkxm,k=1,2,⋯,m
x
\bm x
x的第
k
k
k主成分的方差是
v
a
r
(
y
k
)
=
α
k
T
Σ
α
k
=
λ
k
,
k
=
1
,
2
,
⋯
,
m
var(y_k)=\alpha_k^T\Sigma\alpha_k=\lambda_k, k = 1, 2, \cdots, m
var(yk)=αkTΣαk=λk,k=1,2,⋯,m,即是协方差矩阵
Σ
\Sigma
Σ的第
k
k
k个特征值。(可用拉格朗日乘子法进行证明)
2.4 方差贡献率
第 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
通常取 k k k使得累计方差贡献率达到规定的百分比以上。累计方差贡献率反映了主成分保留信息的比例,但它并不能反映对某个原有变量 x i x_i xi保留信息的比例,这时通常利用 k k k个主成分 y 1 , y 2 , ⋯ , y k y_1, y_2, \cdots, y_k y1,y2,⋯,yk对原有变量 x i x_i xi的贡献率。
1.为什么要进行规范化?
PCA通常是用于高维数据的降维,它可以将原来高维的数据投影到某个低维的空间上并使得其方差尽量大。如果数据其中某一特征(矩阵的某一列)的数值特别大,那么它在整个误差计算的比重上就很大,那么可以想象在投影到低维空间之后,为了使低秩分解逼近原数据,整个投影会去努力逼近最大的那一个特征,而忽略数值比较小的特征。因为在建模前我们并不知道每个特征的重要性,这很可能导致了大量的信息缺失。为了“公平”起见,防止过分捕捉某些数值大的特征,我们会对每个特征先进行标准化处理,使得它们的大小都在相同的范围内,然后再进行PCA。
此外,从计算的角度讲,PCA前对数据标准化还有另外一个好处。因为PCA通常是数值近似分解,而非求特征值、奇异值得到解析解,所以当我们使用梯度下降等算法进行PCA的时候,我们最好先要对数据进行标准化,这是有利于梯度下降法的收敛。
2.方差最大理论:
在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。
参考:《统计学习方法》第二版