首页 > 代码库 > PCA和SVD

PCA和SVD

一、PCA(Principal Component Analysis)

主成分分析,数据从原来的坐标系转换到新的坐标系,只保留新坐标系中的前面几个坐标轴,即对数据进行了降维处理

1、算法描述

(1)第一个新坐标轴:原数据集中方差最大的方向

(2)第二个新坐标轴:与第一个新坐标轴正交且具有最大方差的方向

(3)一直重复,重复次数为原始数据中特征的数目,但是到最后只保留最先产生的几个新坐标轴,而忽略余下的坐标轴

2、步骤

(1)计算样本数据各个特征的平均值

(2)样本各个特征的值:=样本各个特征的值-平均值

(3)计算协方差矩阵

(4)计算协方差矩阵的特征值和特征向量

(5)将特征值逆序排序

(6)保留最上面的N个特征向量

3、举例(待续)

二、SVD(Singular Value Decomposition)

奇异值分解,矩阵分解中的一种,矩阵分解是将数据矩阵分解为多个独立部分的过程

1、算法描述

Datam*n=Um*mm*nVTn*n

矩阵∑的对角元素是从大到小排列的,这些对角元素称为奇异值

在某个奇异值的数目(r个)之后,其他的奇异值都置为0,即数据集中仅有r个重要特征,而其余特征则都是噪声或者冗余特征

2、如何选取r

(1)保留矩阵中90%的能量信息:将所有的奇异值求平方和,将奇异值的平方和累加到90%为止

(2)当有上万个奇异值时,仅保留前面2000-3000个

3、举例(待续)

4、奇异值分解(待续)

 

PCA和SVD