PCA算法分析

PCA算法分析这个是在研一的概率论课上做的实验报告,PCA算法分析,对降维进行了一定程度的了解,并用PCA实现降维,具体语言是Python。第一章概率论与随机过程在降维中的应用——PCA算法分析1.1PCA背景1.1.1降维的意义在大数据集上进行复杂的分析和挖掘需要很长的时间,数据降维产生更小但保持数据完整性的新数据集,在降维后的数据集上进行分析和挖掘将更有效率数据降维的意义:1)降…

大家好,欢迎来到IT知识分享网。

这个是在研一的概率论课上做的实验报告,PCA算法分析,对降维进行了一定程度的了解,并用PCA实现降维,具体语言是Python

第一章 概率论与随机过程在降维中的应用——PCA算法分析

1.1 PCA背景

1.1.1降维的意义

在大数据集上进行复杂的分析和挖掘需要很长的时间,数据降维产生更小但保持数据完整性的新数据集,在降维后的数据集上进行分析和挖掘将更有效率

数据降维的意义:

1)降低无效、错误的数据对建模的影响,提高建模的准确性。

2)少量且具有代表性的数据将大幅缩减数据挖掘所需要的时间。

3)降低存储数据的成本。

1.1.2降维的作用

  1. 降低时间复杂度和空间复杂度
  2. 节省了提取不必要特征的开销
  3. 去掉数据集中夹杂的噪声
  4. 较简单的模型在小数据集上有更强的鲁棒性
  5. 当数据能有较少的特征进行解释,我们可以更好的解释数据,使得我们可以提取知识。
  6. 实现数据可视化

1.1.3降维的方法

降维方法分为线性和非线性降维,非线性降维又分为基于核函数和基于特征值的方法。如图1-1所示。

1、线性降维方法:PCA 、ICA LDA、LFA、LPP(LE的线性表示)

2、非线性降维方法:

(1)基于核函数的非线性降维方法:KPCA 、KICA、KDA

(2)基于特征值的非线性降维方法(流型学习):ISOMAP、LLE、LE、LPP、LTSA、MVU

https://img-blog.csdn.net/20161122094040239

图1-1 降维方法

1.2 PCA原理

主成分分析(Principal Component Analysis,PCA):主成分分析是一种用于连续属性的数据降维方法,它构造了原始数据的一个正交变换,新空间的基地去除了原始空间基底下数据的相关性,只需要使用少数新变量就能够解释原始数据中大部分变量。在应用中通常是选出比原始变量个数少,能够解释大部分数据中的变量的几个新变量,即所谓的主成分,来代替原始变量进行建模。通过线性变化,将原始数据集变化为一组各维度线性无关的表示。

PCA把原先的n个特征用数目更少的n’个特征取代,新特征是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的n’个特征互不相关。

例如将三维空间的物体降维至二维空间,如图1-2所示。

PCA算法分析

图1-2 降维示例

1.3 PCA算法流程

1.3.1 PCA推导

首先将原特征空间的样本点表示为: xi  ,并认为其已经中心化。样本空间中的所有向量可构成矩阵X。

将降维后的特征空间中的投影点表示为:WTxi ,W=(w1, w2 , …. , wd),其中W为投影变换后的新的坐标系,wi是标准正交基向量。

则投影后样本点的方差表示为:1ni=1n(WTxi )2                    (1)

公式(1)可将矩阵的乘法展开写成: 1ni=1n(WTxi)(WTxi)T          (2)   

 去掉括号为: 1ni=1nWTxixiTW                            (3)

由于W与加和符号无关,故提出来: 1nWT (i=1nxixiT)W           (4)         可以将公式(4)写成所有样本点组成的矩阵相乘: 1nWT (XXT)W      (5)

建立目标函数: J(W)=WT XXTW ,添加W为单位向量的约束条件:WTW=1

对方差进行拉格朗日乘子法:lw=WT XXTW-λ(WTW-1),并对w求偏导:  ∂l(w)∂w=0  è  XXTW =λW

对协方差矩阵XXT进行特征值分解,最大特征值λ1对应方差,特征向量w1为第一主成分的方向。

1.3.2 PCA算法流程

PCA

输入:n维的样本集D={
x1 , x2 , x3 ,, xm};

输出:降到n’ 维的样本集D’ ;

1:  对所有样本进行中心化:xixi1mi=1mxi ;

2:  计算所有样本的协方差矩阵 XXT  ;

3:  对协方差矩阵XXT 做特征值分解 ;

4:  取出最大的n’ 特征值对应的特征向量 w1 ,w2 ,, w n’  将其标准化,组成新的特征向量矩阵W ;

5:  对于每一个样本xi ,转化为新样本 zi =WTxi

6:  Return D’ ={
z1 , z2 , z3 ,, zm}

1.4 PCA应用实例

1.4.1 普通数据降维

       原样本为二维空间上的数据,如图1-3所示。

PCA算法分析

图1-3 二维空间的样本数据

实验环境为:Win10,RAM大小:8G ,CPU:i5-7200U,代码语言为Python,运行环境:CMD控制台窗口。

实验代码如下:

import numpy as np

import matplotlib.pyplot as plt

data=np.array([[2.5,2.4],

               [0.5,0.7],

               [2.2,2.9],

               [1.9,2.2],

               [3.1,3.0],

               [2.3,2.7],

               [2.0,1.6],

               [1.0,1.1],

               [1.5,1.6],

               [1.1,0.9]])

plt.plot(data[:,0],data[:,1],'*')

meandata=np.mean(data,axis=0)          #计算每一列的平均值

data=data-meandata                     #均值归一化

covmat=np.cov(data.transpose())        #求协方差矩阵

eigVals,eigVectors=np.linalg.eig(covmat) #求解特征值和特征向量

pca_mat=eigVectors[:,-1]                #选择第一个特征向量

pca_data=np.dot(data,pca_mat)

plt.show()

print(pca_data)

降维后的结果为一维数据,[-0.82797019  1.77758033 -0.99219749 -0.27421042 -1.67580142   -0.9129491  0.09910944  1.14457216  0.43804614  1.22382056],结果如图1-4所示。

PCA算法分析

图1-4 运行结果

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15311.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信