(转)奇异值分解(SVD)和主成分分析法(PCA)

如题所述

第1个回答  2022-06-18
    1.奇异值分解是矩阵分解的一种方法

    2.特征值和特征向量:Ax=λx.矩阵的乘法最后可以用特征值来代替使用,可以简化很多运算。

        ①A必须是n×n的方阵;

        ②正常对方阵进行分解

        ③分解形式:A = W∑W的转置

    3.机器学习中大量数据集的行列不相同,即不是方阵,而是一个m×n的矩阵。SVD可以对矩阵进行分解。

        ①分解形式:A=UΣV的转置,其中,A是m×n的矩阵,U是m×m的矩阵,Σ是m×n的矩阵,V是n×n的矩阵。

        ②U称为左奇异变量,根据特征向量的求法,要求U特征向量必须是方阵,所以凑方阵,如下图所示

        ③V称为左奇异变量,根据特征向量的求法,要求V特征向量必须是方阵,所以凑方阵,如下图所示

            ④求解Σ特征值矩阵

    4.矩阵的奇异值分解有什么意义?

            ①SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。

    5.PCA降维,需要找到样本协方差矩阵X T X的最大的d个特征向量,然后用这最大的d个特征向量张成的矩阵来做低维投影降维。当样本数多样本特征数也多的时候,这个计算量是很大的。而SVD中求解非方阵矩阵,就是要求这个值,有一些SVD的实现算法可以不求先求出协方差矩阵X T X,也能求出我们的右奇异矩阵V。也就是说,我们的PCA算法可以不用做特征分解,而是做SVD来完成。这个方法在样本量很大的时候很有效。实际上,scikit-learn的PCA算法的背后真正的实现就是用的SVD,而不是我们我们认为的暴力特征分解。

    6.在处理数据集中左右奇异矩阵的作用:左奇异矩阵可以用于行数的压缩。相对的,右奇异矩阵可以用于列数即特征维度的压缩,也就是我们的PCA降维。

    7.奇异值分解的优点:SVD作为一个很基本的算法,在很多机器学习算法中都有它的身影,特别是在现在的大数据时代,由于SVD可以实现并行化,因此更是大展身手。

    8.奇异值分解的缺点:分解出的矩阵解释性往往不强,有点黑盒子的味道,不过这不影响它的使用.

    1.概念:主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA.

    2.作用:PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据(x(1),x(2),...,x(m))(x(1),x(2),...,x(m))。我们希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小

    3.基于小于投影距离

    4.基于最大投影方差

    1.协方差矩阵度量了两个矩阵之间的相关性多大

    2.方差度量了数据集的信息度,方差越大表示信息量越大,数据比较随机,信息熵越大;方差越小表示信息量小,数据比较统一,信息熵小;

    3.特征值和特征向量求解方法:

            ①定义:设A是n阶矩阵,如果数λ和n维非零列向量x使得关系式Ax=λx成立,那么,这样的数λ就称为方阵A的特征值,非零向量x称为A对应于特征值λ的 特征向量 。

            ②对关系式进行变换:(A-λE)x=0 其中E为单位矩阵。这是n个 未知数 n个 方程 的 齐次线性方程组 ,它有非 零解 的 充要条件 是 系数行列式 为0,即|A-λE|=0。带入具体的数字或者符号,可以看出该式是以λ为未知数的一元n次方程,称为方阵A的 特征方程 ,左端 |A-λE|是λ的n次多项式,也称为方阵A的特征多项式;

参考文献

[1]  奇异值分解(SVD)原理与在降维中的应用

[2]  主成分分析(PCA)原理总结
相似回答