第十课 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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)