matlab 数据压缩 pca,数据压缩(二.1)——主成分分析(PCA)步骤

任务:主成分分析:步骤、应用及代码实现。代码可以用任何你熟悉的编程语言。

文章目录

(一)PCA及其步骤

1.1零均质化

1.2求出协方差矩阵

方差和协方差的定义

方差/协方差得到协方差矩阵

1.3求出协方差矩阵的特征值和特征向量

(二)PCA的应用

(三)PCA实现的MATLAB代码

相关文章

(一)PCA及其步骤

“主成分分析”是对于原先提出的所有变量,将重复的变量(关系紧密的变量)删去多余,建立尽可能少的新变量,使得这些新变量是两两不相关的,而且这些新变量在反映课题的信息方面尽可能保持原有的信息。 设法将原来变量重新组合成一组新的互相无关的几个综合变量,同时根据实际需要从中可以取出几个较少的综合变量尽可能多地反映原来变量的信息的统计方法叫做主成分分析或称主分量分析(PCA),也是数学上用来降维的一种方法。”

PCA的步骤:

设有m条n维数据

将原始数据按列组成n行m列矩阵X。

将X的每一行(代表一个属性字段)进行零均质化,即减去这一行的均值。

求出协方差矩阵C = X X T C=XX^TC=XXT。

求出协方差矩阵的特征值及对应的特征向量。

将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P。

Y = P X Y=PXY=PX即为降维到k维后的数据。

1.1零均质化

进行零均质化,就是减去这一行的均值。

1.2求出协方差矩阵

协方差矩阵,一般而言,可视作方差和协方差两部分组成,方差构成了对角线上的元素,协方差构成了非对角线上的元素。

方差和协方差的定义

方差用来度量单个随机变量的离散程度

协方差用来刻画两个随机变量的相似程度。

方差计算公式:σ x 2 = 1 n − 1 Σ i = 1 n ( x i − x ‾ ) 2 \sigma^{2}_{x}=\frac{1}{n-1}\Sigma^{n}_{i=1}(x_i-\overline{x})^2σx2​=n−11​Σi=1n​(xi​−x)2

其中,n nn表示样本量,符号x ‾ \overline{x}x表示观测样本的均值。

协方差计算公式:σ ( x , y ) = 1 n − 1 Σ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) \sigma(x,y)=\frac{1}{n-1}\Sigma^n_{i=1}(x_i-\overline{x})(y_i-\overline{y})σ(x,y)=n−11​Σi=1n​(xi​−x)(yi​−y​)

在公式中,符号x ‾ \overline{x}x,y ‾ \overline{y}y​分别表示两个随机变量所对应的观测样本均值。

方差/协方差得到协方差矩阵

根据方差的定义,给定d dd个随机变量x k x_kxk​,k = 1 , 2 , ⋯ , d k=1,2,\cdots,dk=1,2,⋯,d,则这些随机变量的方差为σ ( x k , x k ) = 1 n − 1 Σ i = 1 n ( x k i − x k ‾ ) 2 , k = 1 , 2 , ⋯   , d \sigma(x_k,x_k)=\frac{1}{n-1}\Sigma_{i=1}^n(x_{ki}-\overline{x_k})^2,k=1,2,\cdots,dσ(xk​,xk​)=n−11​Σi=1n​(xki​−xk​​)2,k=1,2,⋯,d

x k i x_{ki}xki​表示随机变量x k x_kxk​中的第i ii个观测样本,n nn表示样本量,每个随机变量所对应的观测样本数量均为n nn。

根据这些随机变量,我们可以根据协方差的定义,求出两两之间的协方差,即σ ( x m , x k ) = 1 n − 1 Σ i = 1 n ( x m i − x m ‾ ) ( x k i − x k ‾ ) \sigma(x_m,x_k)=\frac{1}{n-1}\Sigma^n_{i=1}(x_{mi}-\overline{x_m})(x_{ki}-\overline{x_k})σ(xm​,xk​)=n−11​Σi=1n​(xmi​−xm​​)(xki​−xk​​)

因此,协方差矩阵为:

Σ = [ σ ( x 1 , x 1 ) ⋯ σ ( x 1 , x d ) ⋮ ⋱ ⋮ σ ( x d , x 1 ) ⋯ σ ( x d , x d ) ] \Sigma= \begin{bmatrix} \sigma(x_1,x_1)& \cdots& \sigma(x_1,x_d)\\ \vdots&\ddots&\vdots\\ \sigma(x_d,x_1)&\cdots&\sigma(x_d,x_d) \end{bmatrix}Σ=⎣⎢⎡​σ(x1​,x1​)⋮σ(xd​,x1​)​⋯⋱⋯​σ(x1​,xd​)⋮σ(xd​,xd​)​⎦⎥⎤​

可知,矩阵Σ \SigmaΣ为对称矩阵,其大小为d × d d\times{d}d×d。

1.3求出协方差矩阵的特征值和特征向量

特征值和特征向量表达了线性变换的特征。在物理意义上,一个高维空间的线性变换可以想象是在对一个向量在各个方向上进行了不同程度的变换,而特征向量之间是线性无关的,它们对应了最主要的变换方向,同时特征值表达了相应的变换程度。

求特征向量,就是把矩阵A所代表的空间进行正交分解,使得A的向量集合可以表示为每个向量a在各个特征向量上的投影长度。

(二)PCA的应用

PCA是一种数据降维算法,它应用的条件是数据/特征之间具有明显的线性相关性。

从数学上理解,它是一种矩阵分解算法。

从物理意义上理解,它是线性空间上的线性变换。

它可以用于数据可视化、数据压缩存储、异常检测、特征匹配与距离计算等。

(三)PCA实现的MATLAB代码

clear all

%% 5个样本,每个样本2个特征,k=1

x=[-1 -2;

-1 0;

0 0;

2 1;

0 1];

x=x';

k=1;

N=size(x);

col=N(1);

vol=N(2);

%% 零均值化

for i=1:col %每一行

M=mean(x(i,:));

for j=1:vol

x(i,j)=x(i,j)-M;

end

end

%% 计算协方差矩阵

C=cov(x');

%% 计算协方差矩阵的特征值V,特征向量D

[V,D]=eig(C);

%% 将特征向量按降序排序

d=diag(D);

eig1=sort(d,'descend');

v=fliplr(V);

%% 取前k行组成矩阵P

P=v(1:k,:);

%% 得到降维后的数据

Y=P*x

相关文章

数据压缩(二.2)——主成分分析(PCA)原理

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值