有了第九课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个奇异值对应的原图像数据相同。
标签:SVD,矩阵,降维,第十课,VT,成分,PCA From: https://www.cnblogs.com/tgltt/p/17453069.html