引入
主成分分析是一种常用的无监督学习方法,这一方法利用正交变换把线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量被称为主成分。
主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。
总体主成分分析
基本想法
数据的变量之间可能存在相关性,以致增加了分析的难度。于是,考虑由少数不相关的变量来代替相关的变量,用于表示数据,并且要求能保留数据中的大部分信息。
步骤:
- 对给定数据进行规范化;
- 对数据进行正交变换;
新变量是可能的正交变换中变量的方差和(信息保存)最大的,方差表示在新变量上的信息大小。将新变量依次称为第一主成分、第二主成分等。
可以利用主成分近似地表示原始数据;也可以把数据由少数主成分表示,这相当于对数据的降维。
直观解释
样本由实数空间中的点表示,空间的一个坐标轴表示一个变量。
规范化处理之后得到的数据分布在原点附近。
对原坐标系中的数据进行主成分分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上(相当于是原样本点在新坐标系中的坐标)。
新坐标系的第一坐标轴、第二坐标轴分别表示第一主成分、第二主成分,数据在每一轴上的坐标值的平方表示相应变量的方差;并且这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差最大的。
如果只取第一坐标轴,相当于将二维空间压缩到一维空间。
如何理解方差最大?
在数据总体上进行的主成分分析称为总体主成分分析,在有限样本上进行的称为样本主成分分析。
方差越大,表示我这个样本沿这个方向的越有区分度。这是因为比如说二维到一维少了一维,我这个差异化特征就少了一个,所以我要求这个方差大,来保障这个维度上的差异化。
定义和导出
协方差矩阵反应的是两两特征之间的协方差。 y i y_i yi是 y y y的第 i i i个分量,其是对 x x x的所有分量进行线性组合得到的。上述性质是针对每一维度的特征来说的。
定义16.1(总体主成分)给定一个如 y i = α i T x i y_i=\alpha_i^Tx_i yi=αiTxi所示的线性变换,如果它们满足以下条件:
- 系数向量 α i T \alpha_i^T αiT是单位向量,即 α i T α i = 1 \alpha_i^T\alpha_i=1 αiTαi=1;
- 变量 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\not=j) cov(yi,yj)=0(i=j)
- 变量 y 1 y_1 y1是 x x x的所有线性变换中方差最大的; y 2 y_2 y2是与 y 1 y_1 y1不相关的 x x x的所有线性变换中方差最大的…;这时分别称 y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1,y2,...,ym是 x x x的第一主成分、第二主成分、…、第 m m m主成分。
上述是针对总体主成分的定义,总体主成分是一种特殊的线性变换,注意其满足的三个条件。
条件1中表明该线性变换是正交变换。条件2、3给出了求取主成分的方法:
- 在
x
x
x的所有线性变换:
α 1 T x = ∑ i = 1 m α i 1 x i \alpha_1^T x=\sum_{i=1}^m\alpha_{i1}x_i α1Tx=i=1∑mαi1xi中,在 α 1 T α 1 = 1 \alpha_1^T\alpha_1=1 α1Tα1=1条件下,求方差最大的,得到 x x x的第一主成分; - 在与 α 1 T x \alpha_1^Tx α1Tx不相关的 x x x的所有线性变换 α 2 T x = ∑ i = 1 m α i 2 x i \alpha_2^Tx=\sum_{i=1}^m\alpha_{i2}x_i α2Tx=i=1∑mαi2xi中,在…条件下,求方差最大的,得到 x x x的第二主成分;
- 循环下去,直到求出第 m m m主成分。
这里面一个是需要找到 α i \alpha_i αi,怎么找呢?
主要性质
定理部分
定理16.1 设 x x x是 m m m维随机变量, Σ \Sigma Σ是 x x x的协方差矩阵, Σ \Sigma Σ的特征值分别是 λ 1 ≥ λ 2 ≥ . . . ≥ λ m ≥ λ 0 \lambda_1\ge\lambda_2\ge ...\ge \lambda_m\ge\lambda_0 λ1≥λ2≥...≥λm≥λ0,特征值对应的单位特征向量分别是 α 1 , α 2 , . . . , α m \alpha_1,\alpha_2,...,\alpha_m α1,α2,...,αm,则 x 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^T x=\alpha_{1k}x_1+\alpha_{2k}x_2+...+\alpha_{mk}x_m,k=1,2,...,m yk=αkTx=α1kx1+α2kx2+...+αmkxm,k=1,2,...,m x x x的第 k k k个主成分的方差是 D ( y k ) = α k T Σ α k = λ k D(y_k)=\alpha_k^T\Sigma\alpha_k=\lambda_k D(yk)=αkTΣαk=λk即 Σ \Sigma Σ的第 k k k个特征值。
这一定理阐述了总体主成分与协方差的特征值和特征向量的关系,同时给出了一种求主成分的方法。
简述且记忆:线性变化向量为特征向量,此时的方差最大为特征值,序列关系按照方差从大到小排。
推论16.1 m m m维随机变量 y = ( y 1 , y 2 , . . . , y m ) T y=(y_1,y_2,...,y_m)^T y=(y1,y2,...,ym)T的分量依次是 x x x的第一主成分到第 m m m主成分的充要条件是:
- y = A T x y=A^Tx y=ATx, A A A为正交矩阵;
- y y y的协方差矩阵为对角矩阵 c o v ( y ) = d i a g ( λ 1 , λ 2 , . . . , λ m ) , λ 1 ≥ λ 2 ≥ . . . ≥ λ m cov(y)=diag(\lambda_1,\lambda_2,...,\lambda_m),\lambda_1\ge\lambda_2\ge...\ge\lambda_m cov(y)=diag(λ1,λ2,...,λm),λ1≥λ2≥...≥λm。其中 λ k \lambda_k λk是 Σ \Sigma Σ的第 k k k个特征值, α k \alpha_k αk是对应的单位特征向量。
性质部分
- 总体主成分 y y y的协方差矩阵是对角矩阵;
- 总体主成分 y y y的方差之和等于随机变量 x x x的方差之和;
- 第
k
k
k个主成分
y
k
y_k
yk与变量
x
i
x_i
xi的相关系数
ρ
(
y
k
,
x
i
)
\rho(y_k,x_i)
ρ(yk,xi)称为因子负荷量,它表示第
k
k
k个主成分
y
k
y_k
yk与变量
x
i
x_i
xi的相关关系。计算公式是
ρ
(
y
k
,
x
i
)
=
λ
k
α
i
k
σ
i
i
\rho(y_k,x_i)=\frac{\sqrt{\lambda_k}\alpha_{ik}}{\sqrt{\sigma_{ii}}}
ρ(yk,xi)=σiiλkαik因为
ρ
(
y
k
,
x
i
)
=
c
o
v
(
y
k
,
x
i
)
v
a
r
(
y
k
)
v
a
r
(
x
i
)
=
c
o
v
(
α
k
T
x
,
e
i
T
x
)
λ
k
σ
i
i
\rho(y_k,x_i)=\frac{cov(y_k,x_i)}{\sqrt{var(y_k)var{(x_i)}}}=\frac{cov(\alpha_k^Tx,e_i^Tx)}{\sqrt{\lambda_k}\sqrt{\sigma_{ii}}}
ρ(yk,xi)=var(yk)var(xi)cov(yk,xi)=λkσiicov(αkTx,eiTx)
剩余两个关于因子负荷量的性质不再介绍。
主成分的个数
主成分分析的主要目的是降维,所以一般选择 k k k个主成分,使问题得到简化,并能保留原来的大部分信息。
定理16.2 对任意正整数 q q q, 1 ≤ q ≤ m 1\le q\le m 1≤q≤m,考虑正交线性变换 y = B T x y=B^Tx y=BTx其中 y y y使 q q q维向量, B T B^T BT使 q × m q\times m q×m矩阵,令 y y y的协方差矩阵(既是相似变换也是相和变换)为 Σ y = B T Σ B \Sigma_y=B^T\Sigma B Σy=BTΣB则 Σ y \Sigma_y Σy的迹 t r ( Σ y ) tr(\Sigma_y) tr(Σy)在 B = A q B=A_q B=Aq时取得最大值,其中 A q A_q Aq由正交矩阵 A A A的前 q q q列组成(A应该是特征向量,那这就有点相似对角化的味道了)。
这里说明的是,当取 A A A的前 q q q列时能够保证这个原有变量方差信息被最大限度保留,这等价于 t r ( Σ y ) tr(\Sigma_y) tr(Σy)最大。
定理16.3考虑正交变换
y
=
B
T
x
y=B^Tx
y=BTx
这里
B
T
B^T
BT是
p
×
m
p\times m
p×m矩阵,
A
A
A和
Σ
y
\Sigma_y
Σy的定义与定理16.2相同,则
t
r
(
Σ
y
)
tr(\Sigma_y)
tr(Σy)在
B
=
A
p
B=A_p
B=Ap时,取得最小值,
A
p
A_p
Ap由
A
A
A的后
p
p
p列组成。
总之16.2和16.3说明了,要想降维的时候,我的信息得到最大限度的保留,就取从大到小排列的特征值对应的特征向量的前 k k k个。反之亦然。这边应该是从矩阵层面上给出了规范化的定理。
定 义 16.2 定义16.2 定义16.2 第 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,...,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个主成分对原有变量的贡献率:
定义16.3 k k k个主成分 y 1 , y 2 , . . . , y k y_1,y_2,...,y_k y1,y2,...,yk对原有变量 x i x_i xi的贡献率定义为 x i x_i xi与 y 1 , y 2 , . . . , y k y_1,y_2,...,y_k y1,y2,...,yk的相关系数的平方,记作 v i v_i vi: v i = ρ 2 ( x 1 , ( y 1 , y 2 , . . . , y k ) ) v_i=\rho^2(x_1,(y_1,y_2,...,y_k)) vi=ρ2(x1,(y1,y2,...,yk))计算公式如下: v i = ∑ j = 1 k ρ 2 ( x i , y j ) v_i=\sum_{j=1}^k\rho^2(x_i,y_j) vi=j=1∑kρ2(xi,yj)
规范化变量的总体主成分
实际问题中,不同的变量可能有不同的量纲,为了消除这个影响,常常对各个随机变量实施规范化,使其均值为0,方差为1.
设 x = ( x 1 , x 2 , . . . , x m ) T x=(x_1,x_2,...,x_m)^T x=(x1,x2,...,xm)T为 m m m维随机变量, x i x_i xi为第 i i i鸽随机变量, i = 1 , 2 , . . . , m i=1,2,...,m i=1,2,...,m,令 x ∗ = x i − E ( x i ) v a r ( x i ) , i = 1 , 2 , . . . , m x^*=\frac{x_i-E(x_i)}{\sqrt{var(x_i)}},i=1,2,...,m x∗=var(xi)xi−E(xi),i=1,2,...,m
规范化随机变量的协方差矩阵就是相关矩阵 R R R。主成分分析通常在规范化随机变量的协方差矩阵即相关矩阵上进行。
规范化随机变量的总体主成分有以下性质:
- 规范化变量主成分的协方差矩阵是 Λ ∗ = d i a g ( λ 1 ∗ , . . . , λ m ∗ ) \Lambda^*=diag(\lambda^*_1,...,\lambda^*_m) Λ∗=diag(λ1∗,...,λm∗)其中,这些值是相关矩阵的特征值。
- 协方差矩阵的特征值之和为 m m m;
- …
样本主成分分析
总体主成分分析是定义在样本总体上的。在实际问题中需要在观测数据上进行主成分分析,这就是样本主成分分析。
样本主成分与总体主成分相同的性质。
样本主成分的定义和性质
假设对 m m m维随机变量 x = ( x 1 , x 2 , . . . , x m ) T x=(x_1,x_2,...,x_m)^T x=(x1,x2,...,xm)T进行 n n n次独立观测,, x 1 → n x_{1\to n} x1→n表示观测样本。
定义16.4(样本主成分)给定样本矩阵 X X X。样本第一主成分 y 1 = a 1 T x y_1=a_1^T x y1=a1Tx是在 a 1 T a 1 = 1 a_1^Ta_1=1 a1Ta1=1条件下,是在 a 1 T x j a_1^Tx_j a1Txj的样本方差 a 1 T S a 1 a_1^TSa_1 a1TSa1最大的 x x x的线性变换;样本第二主成分 y 2 = a 2 T x y_2=a_2^Tx y2=a2Tx是在 a 2 T a 2 = 1 a_2^Ta_2=1 a2Ta2=1条件下和 a 1 T S a 2 = 0 a_1^TSa_2=0 a1TSa2=0条件下,使得 a 2 T x j a_2^Tx_j a2Txj的样本方差最大的 x x x的线性变换;以此类推。
样本主成分与总体主成分有相同的性质,所以说其余都一致。
规范化的样本矩阵的协方差矩阵就是相关矩阵。
在使用样本主成分时,一般假设样本数据是规范化的,即对样本矩阵做如下变换 x i j ∗ = x i j − x ˉ i s i i x^*_{ij}=\frac{x_{ij}-\bar x_i}{\sqrt{s_{ii}}} xij∗=siixij−xˉi
相关矩阵的特征值分解算法
传统的主成分分析通过数据的协方差矩阵或相关矩阵的特征值分解进行,现在常用的方法是通过数据矩阵的奇异值分解进行。
给定样本矩阵 X X X,利用数据的样本协方差矩阵或者样本相关矩阵的特征值分解进行主成分分析。具体步骤如下:
- 对观测数据按照上述式子进行规范化处理,得到规范化矩阵,仍然以 X X X表示;
- 依据规范化数据矩阵计算样本相关矩阵 R = 1 n − 1 X X T R=\frac{1}{n-1}XX^T R=n−11XXT
- 求样本相关矩阵 R R R的 k k k个特征值和对应的单位特征向量;
- 求 k k k个样本主成分,求累积方差贡献率达到预定值的主成分个数 k k k;
- 计算 k k k个主成分 y j y_j yj与原变量 x i x_i xi的相关系数,以及 k k k个主成分对原变量 x i x_i xi的贡献率 v i v_i vi;
- 计算 n n n个样本的 k k k个主成分值。