第十课 PCA降维

发布时间 2023-06-02 23:01:26作者: tgltt

       有了第九课SVD分解的基础,PCA降维的原理理解起来就比较容易了。

1、PCA降维原理

       先回到SVD分解,对矩阵A进行SVD分解,得到下式:

       A = U * S * V

       其中V是正交矩阵,即V*VT=E,对上式进行一下转化:

       A * VT = U * S * V * VT

       A * VT = U * S                                                                                            (式1)

       式1就是PCA降维的原理式,输入A矩阵,右乘以VT矩阵,就可以对原矩阵A进行降维了。

       PCA在降维前,先要进行训练,训练的目的就是为了得到VT矩阵。这里的VT矩阵,是经过筛选前k行的V矩阵转置而得。

2、SkLearn中的PCA

       SkLearn中封装有PCA的实现类,具体使用见如下代码:

 

       上述代码指定返回10个主成分,主成分百分比的意思是每个成分占据总信息量的百分比。下面代码使用pca.inverse_transform将降维后的主成分数据,尝试还原为原图,还原效果和上篇文章用svd手动还原前k=10个奇异值对应的原图像数据相同。