主成分分析(PCA)原理详解:
只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
思考:
我们如何得到这些包含最大差异性的主成分方向呢?
答案: 事实上,通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。由于得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵,所以PCA算法有两种实现方法:基于特征值分解协方差矩阵实现PCA算法、基于SVD分解协方差矩阵实现PCA算法。
PCA有两种通俗易懂的解释:(1)最大方差理论;(2)最小化降维造成的损失。
参考:超级详细——点这里
奇异值分解的数学解释:
散度矩阵是SVD奇异值分解的一步,因此PCA和SVD是有很大联系。
点这里
skitlearn中的源码分析:
源码简述
主要用到公式为:
X
m
×
n
=
U
m
×
m
ε
m
×
n
V
n
×
n
T
X_{m\times n}=U_{m\times m} \varepsilon_{m\times n} V^{T}_{n\times n}
Xm×n=Um×mεm×nVn×nT
表示降维后的数据为:
X
m
×
n
V
n
×
k
=
U
m
×
m
ε
m
×
k
X_{m\times n}V_{n\times k}=U_{m\times m}\varepsilon_{m\times k}
Xm×nVn×k=Um×mεm×k
k即为降维后的维数。