SVD数据降维

1. SVD用于数据压缩

Am×n=Um×rΣr×r(Vn×r)T=σiuivTi
1) 数学特征
a. r为矩阵的秩,转换坐标基底,表示矩阵A每行每列所用向量的最小维度
b. U和V称为左奇异矩阵和右奇异矩阵,都是 单位正交阵,每个奇异向量都是由矩阵A的行和列的 线性组合得到
c. Σ 是对角矩阵,每个值称为奇异值,表示奇异向量(U和V每列)对矩阵A的能量贡献,因此可以将某些较小的奇异值置0,来达到数据压缩的目的,经验上保留总能量的80%-90%( σ2
d. SVD是最好的 低秩近似,若B为SVD低奇异值置0后得到的矩阵,秩为k,在所有秩为k的矩阵中B与原矩阵A的弗罗宾尼斯范数最小 ||AB||F=(AijBij)2
e. 时间复杂度: min(O(nm2),O(n2m))

2. 降维

1)降维目的:减少特征向量维数;将高维稀疏向量变为低维稠密向量,更好体现数据核心特征,并减少噪声
2)核心思想:用矩阵U或V作为新的坐标轴,对原向量进行转换,实现向量意义和维度改变,用U矩阵作为坐标轴类似PCA
3)物理背景:假设A矩阵是用户-电影矩阵,每行是用户对不同电影的评分,是一条样本
4)分解后的物理意义:U表示用户-主题矩阵,V表示电影-主题矩阵, Σ 表示每个主题的明显度
5)求用户相似度:
a. 当已知某写用户对部分电影的评分向量q和电影-主题矩阵 Vn×r
b. 由 qV 可得新的低维向量,向量每个维度是用户对某个主题的感兴趣程度,通过该向量求相似用户
c. 该方法也是降维,使向量表示的意义发生改变,更好的体现用户兴趣的关联性。
d. 同样已知某部电影用户的评分向量和用户-主题矩阵也可求电影间的相似度
6)特点:可以减小噪声的影响,但不能去除过拟合

3. SVD与PCA区别

1)一次分解,SVD可以获得两个方向的主成份,PCA只能获取单方向主成分
2)SVD降维能更好的反应数据的核心信息,SVD降维可以建立隐语义索引,如用户-电影矩阵可分解成用户-主题和电影-主题矩阵,找到用户电影与隐藏主题的关系;PCA需要对原矩阵去均值,对稀疏矩阵,丢失了矩阵稀疏性
3)SVD比PCA更稳定,因为PCA求协方差矩阵有平方操作,当值较小时计算机会丢失一部分精度

3. CUR vs SVD

1)CUR提出动机:计算SVD速度太慢,用一种近似的方法加快计算速度;
2)CUR方法:因为SVD的U和V矩阵是原矩阵的列和行的线性组合,直接抽取原矩阵A的某些行做U(C),某些列做V(R),线性组合和能量加权的工作交给 Σ(U) 去做;其中U是C和R相交点组成矩阵的伪逆;多抽取几次,选取范数最小的一组
3)该方法常用于压缩数据,仅保存某些行列即可,不需要全部保存

你可能感兴趣的:(机器学习基础)