1 主成分分析的应用
主要用在数据降维、高维数据的探索与可视化、数据压缩、数据预处理。
PCA的本质是找到某一个投影方向,使得数据在投影方向的方差最大。
2 基于协方差矩阵的特征值分解
(1) 对特征值进行归一化
设第j个特征的均值为,标准差为,则第j个特征标准化公式为,注意是列向量
(2) 计算协方差矩阵
(3) 计算协方差矩阵的特征值和特征向量,可以用numpy库函数直接求解
eigenvalues, eigenvectors = np.linalg.eig(sigma)
(4) 取特征值由高到低排序的前k个特征值对应的特征向量组成特征矩阵Ureduce,并利用如下公式计算降维后数据Z
3 基于数据矩阵的奇异值分解
除了用特征值分解外,还可以用奇异值分解计算,计算速度更快,步骤如下:
(1) 对特征值进行归一化
(2)对数据进行SVD分解
u, s, vT = np.linalg.svd(X,full_matrices=0)
- X的大小为(M,N)
- 总共有三个返回值u,s,v
-
u大小为(M,M),s大小为(M,N),v大小为(N,N)
(3)计算降维后的数据Z,只需要用到vT矩阵