统计学习方法 第十五章 奇异值分解

奇异值分解(SVD,singular value decomposition)是一种矩阵因子分解方法。任意一个m x n 矩阵都可以表现为三个矩阵的乘机形式,分别是m阶正交矩阵、降序排列非负对角线m x n矩阵和n阶正交矩阵。可以看做是矩阵数据压缩的一种方法,近似地表示原始矩阵,且在平方损失意义下的最优近似。
SVD分解:A = UΣVT
存在性证明过程略。
SVD分解还有紧奇异值分解和截断奇异值分解。几何解释为,m x n矩阵A表示从n维空间Rn到m维空间Rm的一个线性变换,分解为:一个坐标系的旋转或反射变换、一个坐标系的缩放变换、另一个坐标系的旋转或反射变换。
计算过程:
1.求ATA的特征值和特征向量
2.求n阶正交矩阵V
3.求m x n对角矩阵Σ
4.求m阶正价矩阵U
5.得到奇异值分解
还有弗罗贝尼乌斯范数(Frobenius norm),是向量L2范数的直接推广,对应机器学习中的平方损失函数。
矩阵外积展开式,可以理解为矩阵代表的向量的多项式展开。
SVD分解在基于物品的推荐,压缩图像上有较大作用,除了可以去除噪声外,还可以较大地简化数据量,从而保存高质量的源数据。面临的问题是,较大数据及的SVD分解所需计算时间较长,在大型系统中,SVD每天运行一次或者频率更低。
在python中,SVD算法可以直接从numpy.linalg.svd得出结果,返回3个矩阵分别为U,sigma,VT,其中sigma以数组的形式表示对角线上的奇异值。

你可能感兴趣的:(统计学习方法,python,机器学习)