第十课 PCA降维

       有了第九课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个奇异值对应的原图像数据相同。

 

3、PCA降维的意义

       PCA是一种数据降维或者压缩技术,也可以理解为是一种数据转换手段。现实生活中的应用场景多种多样,有些应用场景采集到的数据集有成百上千个特征(属性),对应的样本有几万几十几百三万个,这样的数据集如果拿所有的特征来进行机器学习运算,对一般机器的CPU或GPU的开销无疑是毁灭性的,为了应对这样的高压力场景,有必要使用PCA对原始数据集进行压缩,丢弃一部分信息量较少的特征(属性),留下一部分涵盖原数据集大部分信息的特征(属性),这样就能在目标和计算性能上得到一个平衡。

 

关注更多安卓开发、AI技术、股票分析技术及个股诊断等理财、生活分享等资讯信息,请关注本人公众号(木圭龙的知识小屋)

 

posted @ 2023-06-02 22:50  tgltt  阅读(64)  评论(0编辑  收藏  举报