pca 累积方差贡献率公式_初识PCA数据降维

PCA是一种通用的降维工具,通过线性变换将高维数据投影到低维空间,去除噪声和冗余数据。本文详细介绍了PCA的原理,包括协方差分析、矩阵对角化、特征值和特征向量计算,以及PCA的实际应用和实现过程。通过PCA,可以找到最具代表性的特征向量,最大化样本方差,降低维度的同时保持数据的大部分信息。
摘要由CSDN通过智能技术生成

PCA要做的事降噪和去冗余,其本质就是对角化协方差矩阵。

一.预备知识

1.1 协方差分析

对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。

用matlab计算这个例子

z=[1,2;3,6;4,2;5,2]

cov(z)

ans =

2.9167 -0.3333

-0.3333 4.0000

可以看出,matlab计算协方差过程中还将元素统一缩小了3倍。所以,协方差的matlab计算公式为:

协方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(样本数-1)

下面在给出一个4维3样本的实例,注意4维样本与符号X,Y就没有关系了,X,Y表示两维的,4维就直接套用计算公式,不用X,Y那么具有迷惑性的表达了。

注释:协方差为正时说明X和Y是正相关关系,协方差为负时X和Y是负相关关系,协方差为0时X和Y相互独立。

Cov(X,X)就是X的方差(Variance),Cov(X,Y)就是协方差了,从上面可以看出,协方差矩阵是方阵,维度是样本的维度。

1.2 协方差实现

for i=1:size(a,2)

for j=1:size(a,2)

c(i,j)=sum((a(:,i)-mean(a(:,i))).*(a(:,j)-mean(a(:,j))))/(size(a,1)-1);

end

end

验证如下:

>> a =[

-1 1 2

-2 3 1

4 0 3]

a =

-1 1 2

-2 3 1

4 0 3

>> cov(a)

ans =

10.3333 -4.1667 3.0000

-4.1667 2.3333 -1.5000

3.0000 -1.5000 1.0000

>> for i=1:size(a,2)

for j=1:size(a,2)

c(i,j)=sum((a(:,i)-mean(a(:,i))).*(a(:,j)-mean(a(:,j))))/(size(a,1)-1);

end

end

>> c

c =

10.3333 -4.1667 3.0000

-4.1667 2.3333 -1.5000

3.0000 -1.5000 1.0000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值