高维数据会出现数据样本稀疏,距离计算困难,甚至连内积计算都很困难等问题,这些问题被称为“维数灾难”。这时我们就会用到降维,这是一种无监督学习。
主成分分析(PCA)
当数据维数较高,并且数据之间多数情况下有一定的相关性,会使得问题的分析变得很复杂。主成分分析就是试图将原来的数据组合成一组新的相互无关的综合性指标的方法。
选取主成分:
(1)我们希望选区的主成分尽可能多的反映原始信息,衡量信息最经典的方法就是用方差来衡量,方差越大,包含的信息量越大。
(2)选取主成分时,主成分应不相关,而且它们的方差递减。
特点:
- 主成分是原变量的线性组合;
- 各个主成分之间互不相关,不同的主成分轴相互正交。
- 主成分按照方差从大到小依次排列,第一主成分对应最大的方差(特征值);
主成分分析:基于K-L变换的提取特征的一种最优正交线性变换,可以有效去掉一个随机向量中各元素间的相关性。
PCA的目的:寻找能够表示采样数据的最好的投影子空间.
PCA的求解:特征向量常被叫做“主分量”,每个样本被它在前几个主分量上的投影近似表示,U张成的空间称为原空间的子空间,PCA实际上就是在子空间上的投影.
算法
假设原始数据时P维的,每一行代表一个测量值。
X
=
[
x
11
x
12
⋯
 
,
x
1
p
x
21
x
22
⋯
 
,
x
2
p
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
 
,
x
n
p
]
X=\begin{bmatrix} x_{11} & x_{12} & \cdots,x_{1p} \\ x_{21} & x_{22} & \cdots,x_{2p} \\ \vdots & \vdots & \ddots& \vdots \\ x_{n1} & x_{n2} & \cdots,x_{np} \\ \end{bmatrix}
X=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯,x1p⋯,x2p⋱⋯,xnp⋮⎦⎥⎥⎥⎤
(1)对原始数据矩阵进行标准化处理,相当于对原始变量进行坐标平移与尺度伸缩;
(2)计算相关系数矩阵
R
p
×
p
R_{p\times p}
Rp×p
(3)计算特征值与特征向量
a)解特征方程
∣
λ
E
−
R
∣
=
0
|\lambda E-R|=0
∣λE−R∣=0,求出特征值,并使其按大小顺序排列
λ
1
≥
λ
2
≥
⋯
≥
λ
p
≥
0
\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0
λ1≥λ2≥⋯≥λp≥0
b)分别求出对应于特征值
λ
i
\lambda_i
λi的特征向量,
e
i
(
i
=
1
,
2
,
⋯
 
,
p
)
e_i(i=1,2,\cdots,p)
ei(i=1,2,⋯,p),要求
∣
∣
e
i
∣
∣
=
1
||e_i||=1
∣∣ei∣∣=1
(4)确定主成分个数
a)根据累积贡献率
η
m
=
λ
1
+
λ
2
+
⋯
+
λ
m
λ
1
+
λ
2
+
⋯
+
λ
p
\eta_m=\frac{\lambda_1 +\lambda_2+\cdots + \lambda_m}{\lambda_1 +\lambda_2+\cdots + \lambda_p}
ηm=λ1+λ2+⋯+λpλ1+λ2+⋯+λm
当
η
m
\eta_m
ηm大于某个阈值的时候,可以确定主成分个数维m
b)其他准则
特征值大于1.0的因子数定为主成分数。
利用特征值与因子数目的曲线,到某一因子数后,特征值减小幅度变化不大,此转折点因子数即为主成分数m。
保留那些与一个以上变量有重大关系的因子。
(5)求主成分得到新的变量值
F
n
×
m
=
X
n
×
p
U
p
×
m
F_{n \times m}=X_{n \times p}U_{p \times m}
Fn×m=Xn×pUp×m
F矩阵的每一行相当于原数据的行在主分量上的投影。
缺点
PCA是一种线性方法,无法处理非线性流形。
总结
主成分分析采用线性投影的方法进行降维,它的目的是使得数据在给定的方向上投影会得到最大的方,这也等价于点
x
n
x_n
xn和投影之后得到的 点
x
n
′
x_n^{'}
xn′之间的距离最小。