python学习-PCA简介

PCA(主成分分析)是一种特征降维技术,通过旋转输入空间形成新的基,保留大部分方差信息。例如,将5个特征降至2维,保持大部分信息并减少数据泄露风险。在iris数据集上应用PCA,降维至1、2、3维时,对应能量分别为0.924、0.977和0.995。通常要求降维后至少保留95%的输入能量。白化处理虽会损失部分信息,但能提升学习算法准确性。随机PCA是大样本量情况下的快速近似方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PCA是主要成分分析,principal componetn analysis的缩写。

它是一种帮助定义更小、更相关特征集合的技术。新的特征是现有特征的线性组合(即旋转)。输入空间经过旋转后,输出集合的第一个向量包含信号的大部分能量(即方差)。第二个向量与第一个向量正交,它包含剩余能量的大部分;第三个向量又与前两个向量正交,并包含剩余能量的大部分。(摘自《数据科学导论》)

PCA降维就是将数据映射到新的一组基上,获得一个新的表达,并且新的表达仍然包含了原向量的绝大部分信息。

例如在图中,红色向量为(3, 2)。而当将基底换为蓝色的两个正交向量后红色向量不再是(3, 2)。

现在比如将5个特征降维成2维,特征的数字失去了实际意义。2维的数据仍然包含了绝大部分信息从而防止了实际商业信息的泄露。比如有150条有5个特征的数据,想要将此数据降维为2维,那么只需要用这些向量乘上一个基向量2*150的基向量,就可以得到一个150*2的矩阵从而实现降维。

这里利用iris数据集,原数据集为150*4的矩阵。现在将其降维为2。

iris=datasets.load_iris()
pca=PCA(n_components=2)
X_pca=pca.fit_transform(iris.data)
print(pca.explained_variance_ratio_.sum())

结果显示,降维维度为1,2,3时输出能量分别为0.924, 0.977 和0.995

通常情况下,结果要保证输入能量的95%以上(有时是99%)。所以当维度为1时并不是一个好的维度约减。

有的时候,需要将信号进行白化处理(各维度特征向量方差强制为1)。白化会损失一部分信息但是能够提高学习算法的精度。

pca=PCA(n_components=2,whiten=True)
结果为0.978


Randomized PCA

这是一种基于SVD(奇异值分解法),相比于PCA更快更轻,近似迭代分解的方法,适用于数据量大的样本。使用方法类似PCA。

iris=datasets.load_iris()
pca=RandomizedPCA(n_components=2)
X_pca=pca.fit_transform(iris.data)
print(pca.explained_variance_ratio_.sum())
结果为0.9776



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值