主成分分析(PCA)降维算法可视化(内含matlab代码)

一. PCA的介绍

PCA(Principal Component Analysis)是一种数据降维技术,旨在将多维指标转换为少数几个综合指标。在统计学中,PCA是简化数据集的一种方法,通过线性变换将数据映射到新的坐标系中。在新的坐标系中,第一主成分捕获数据投影的最大方差,第二主成分捕获第二大方差,依此类推。主成分分析常用于减少数据集的维度,同时保留对方差贡献最大的特征。这是通过保留低阶主成分、忽略高阶主成分实现的,因此通常能够保留数据的关键特征。然而,应用效果会受具体情况影响。

PCA有几个明显的优点:

1.降维效果明显:

PCA可以将高维数据集转换为低维表示,同时尽量保留数据集的重要信息,降低了数据的复杂度。

2.去除冗余信息:

PCA通过保留对方差贡献最大的特征,可以有效地去除数据集中的冗余信息,提高了数据的紧凑性和可解释性。

3.减少计算量:

降低数据维度后,计算量和存储空间也相应减少,有助于提高算法的效率和速度。

4.提高模型性能:

在一些机器学习任务中,使用PCA进行特征选择和降维可以提高模型的性能和泛化能力,减少过拟合的风险。

5.数据可视化:

降维后的数据更容易可视化和理解,有助于发现数据之间的潜在关系和规律。 

二. PCA算法的步骤

PCA的降维步骤可以概括为以下几个关键步骤:

1.数据准备:

首先,需要准备一个包含m个样本和n个特征的数据集,将数据进行标准化处理,确保每个特征的均值为0,方差为1。

2.计算协方差矩阵:

对标准化后的数据集计算协方差矩阵。协方差矩阵描述了数据特征之间的线性关系,是PCA计算的基础。

3.特征值分解:

对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征值表示数据在特征向量方向上的方差大小,特征向量则表示数据在新的坐标系中的方向。

4.选择主成分:

根据特征值的大小,选择最重要的几个特征向量作为主成分。通常选择特征值较大的前k个特征向量,构成新的特征空间。

5.数据投影:

将原始数据投影到所选的主成分上,得到降维后的数据集。投影的过程就是将数据映射到新的特征空间中,去除掉与主要方差贡献较小的特征。

通过以上步骤,PCA可以实现对高维数据的降维处理,保留了数据的主要特征,同时去除了不必要的冗余信息,有助于提高数据处理和分析的效率。

三. 关键代码展示

完整代码见最后

% [V,S,E]=princa(X)
%[loading,score,letent]=pca(X)   V-loading S-score letent-E
function [V,S,E,cumE,number]=princa(X,pe)
[m,n]=size(X); %计算矩阵的行m和列n
%-------------第一步:标准化矩阵-----------------%
mv=mean(X); %计算各变量的均值
st=std(X); %计算各变量的标准差
X=(X-repmat(mv,m,1))./repmat(st,m,1); %标准化矩阵X
 
%-------------第二步:计算相关系数矩阵-----------------%
% R1=X'*X/(m-1); %方法一:协方差矩阵计算公式
% R2=cov(X);     %方法二:协方差矩阵计算函数
R=corrcoef(X); %方法三:相关系数矩阵函数
 
%-------------第三步:计算特征向量和特征值-----------------%
[V,D]=eig(R);       %计算矩阵R的特征向量矩阵V和特征值矩阵D,特征值由小到大
V=(rot90(V))';      %将特征向量矩阵V从大到小排序
D=rot90(rot90(D));  %将特征值矩阵由大到小排序
E=diag(D);          %将特征值矩阵转换为特征值向量
 
%-------------第四步:计算贡献率和累计贡献率-----------------%
ratio=0; %累计贡献率
for k=1:n
    r=E(k)/sum(E);   %第k主成份贡献率
    ratio=ratio+r;  %累计贡献率
    if(ratio>=0.9)  %取累计贡献率大于等于90%的主成分
        break;
    end
end
%-------------       ---------------%
sumE=sum(E);
tep=E./sumE;
cumE=cumsum(tep);
temp1=find(cumE>pe);
number=min(temp1);
%-------------第五步:计算得分-----------------%
S=X*V;
%需要完整版代码移步最后一行,或者复制这条链接:https://mbd.pub/o/bread/ZpWamJlp

四. Matlab仿真结果展示

1. 图一  各参数的重要性柱状图

2. 图二  降维前数据可视化

3. 图三  PCA特征值数量与累计方差贡献率

4. 图四  降维后数据可视化

完整代码在这里icon-default.png?t=N7T8https://mbd.pub/o/bread/ZpWamJlp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值