Python实现PCA(Principal Component Analysis)
2022/9/3 14:24:08
本文主要是介绍Python实现PCA(Principal Component Analysis),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.基本原理
PCA是机器学习和统计学领域一类特征降维算法。由于样本数据往往会有很多的特征,这会带来以下挑战:
- 样本的维度超过3维则无法可视化;
- 维度过高可能会存在特征冗余,不利于模型训练,等等;
而PCA的目的就是在降低特征维度的同时,最大程度地保证原始信息的完整。
2.案例
点击查看代码
import numpy as np import matplotlib.pyplot as plt #代降维数据点的构建 num = 20 x = np.linspace(-5,5,num) y = x + np.random.rand(num) data = np.row_stack((x,y)) #2*20 plt.scatter(x,y) #计算数据集的协方差矩阵 cov = (1/num) * np.dot(data,data.T) #求解协方差的特征值与特征向量 e,v = np.linalg.eig(cov) print('特征值:',e) print('特征向量',v) #利用特征向量组成的矩阵对原始数据进行线性变换 trans_data = np.dot(v,data) plt.scatter(trans_data[0],trans_data[1]) plt.ylim(-4,4) plt.show()
如图所示,原始二维数据具有很强的线性相关性,降维后的数据在y方向上几乎为常数。直观来看,原本左图是以x和y轴为坐标轴,而在pca降维后的数据可以看做是以y=x为x轴,并且其另外一个方向上的数据因为变化不大可以被删除,达到降维的目的。
这篇关于Python实现PCA(Principal Component Analysis)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程