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)
- PCA和SVD降维
- SVD和PCA
- SVD分解和PCA
- PCA 和 SVD
- 理解PCA和SVD
- PCA和SVD
- SVD和PCA
- PCA 和 SVD
- PCA和SVD关系
- PCA和svd
- PCA降维 SVD参考链接
- SVD & PCA
- PCA,SVD
- PCA和SVD区别和联系
- PCA和SVD区别和联系
- 从PCA和SVD的关系拾遗
- 从PCA和SVD的关系拾遗
- 一个讲解PCA和SVD很好的教程
- Mysql常见报错解决
- SLF4J 教程
- 不得不提的volatile及指令重排序(happen-before)
- 发送到code
- Map集合的四种遍历方式
- PCA和SVD降维
- dwarf tower
- angular4实现发布、订阅功能(基于observable)
- 自动导引运输车AGV与AGC对比
- 排序算法C++&&Python实现---归并排序
- 学生信息管理系统—知识篇
- java程序员的大数据之路(2):创建第一个Hadoop程序
- python里面几个小函数的用法(map, zip, round)
- 【哈夫曼编码模板】