PCA绿萝实现降维

PCA大作业

 

一 程序运行平台:

PCA是matlab2016a和python两个软件都有实现;源码内附word文档

MATLAB:https://download.csdn.net/download/strive_0902/10282607

python:https://download.csdn.net/download/strive_0902/10282616

二 设计思路

   1、读取绿萝的数据,将txt文件的内容转化成23073x6的矩阵形式保存在Data中。

   2、对样本进行中心化操作 

   3、得到新的数据,求协方差矩阵:

   4、对Cx进行特征值分解

   5、计算Y=PX。得到 ,其中每个向量是PCA经过到降维后的数据。

三 代码优化

由于绿萝的数据点是23073x6,在中心化操作时,首先设置一个for循环依次求取6个列的均值,然后每个元素减去自己对应的均值,这样的循环耗费时间,增加算法复杂性;在这里,我们调用matlab自带的函数C=bsxfun(fun,A,B)两个数组AB间元素逐个计算的二值操作,fun是函数句柄或者m文件,即:T = bsxfun(@minus, T, mean(T))使得计算比较快。

 

四、实验结果图及分析 

   实验结果分为两个部分:PCA降维后的一二主元图和PC降维后的一二四主元图,每个部分都有旋转后的多角度图对比。如下图所示:前6张是MATLAB实现的结果图;后两张是python实现的结果图




猜你喜欢

转载自blog.csdn.net/strive_0902/article/details/79533660