PCA和SVD降维

来源:互联网 发布:即时战略 知乎 编辑:程序博客网 时间:2024/06/06 08:34

1 问题引入

前边几章我们学习了很多机器学习的算法,它们在小规模数据上都很有效,但在实际生活中,我们的数据集可能是巨大的,在大规模、多维度数据上运行算法效果往往没有那么好,原因之一是数据的维度太大,有些特征可能对我们的算法决策没有太大影响,或是一些噪声产生干扰。本章我们会提前对数据进行降维处理,只保留数据集中最重要的特征,对数据进行简化,即数据的预处理阶段。

2 PCA

2.1 工作原理

PCA-主成分分析法,是目前应用最广泛的降维技术,通过对原坐标系进行转换,减少原来的坐标轴数量,达到降维的目的。选择的准则是,第一个坐标轴(或方向)选择原始数据中方差最大的方向,第二个坐标轴在和第一个坐标轴正交的前提下,选择方差次大的方向,该过程一直重复,我们会发现大部分的方差(信息)都包含在前几个坐标轴中,所以我们可以忽略余下的坐标轴,即完成了数据的降维。

2.2 数学原理

X是原数据,Y是降维后的数据,P是基向量(特征向量),C是原协方差矩阵,D是对角矩阵(新协方差矩阵)。



通过假设的Y写出第二行第一个等式,即Y的协方差矩阵生成对角矩阵,然后将XP代入Y,推出对角矩阵D和原协方差矩阵的关系,求得其他参数。


优点:降低数据的复杂度,识别最重要的几个特征

缺点:有时不一定需要,且可能损失有用信息


3 SVD

3.1 工作原理

SVD,奇异值分解,使用的是矩阵分解方法。将原数据矩阵分解为三个矩阵乘积的形式,中间的矩阵Z只有对角元素奇异值,代表着原数据的特征,截取前k个最重要的奇异值(平方和占总值的9成),使用这三个截取后得矩阵对原矩阵近似重构,从而达到降维的目的。

3.2 数学原理

(1)矩阵分解

(2),选取保留的奇异值,用新的三个矩阵重构新数据集(假设奇异值为3个)

分解过程,利用方阵求特征值。,Vi为右奇异向量(VT原矩阵),此外

,这里的σ就是上面说的奇异值,u就是上面说的左奇异向量(U原矩阵)。


注:中间矩阵下边被截掉一部分。

3.3 SVD应用

推荐系统:由于推荐系统的用户-项目矩阵经常会有缺失值,我们使用SVD降维后效果会得到提升。

图像压缩:压缩图像节省空间。


优点:简化数据,去除噪声,提高算法的结果

缺点:数据的转换可能难以理解,降低程序的速度(可离线运行)


参考资料:统计学习方法(李航)、机器学习实战(Peter)

原创粉丝点击