多语言展示
当前在线:1390今日阅读:126今日分享:42

MATLAB怎么做主成分分析

工作和办公是由于数据太过庞大,维数太高常用到MATLAB对数据进行主成分分析(降维),使数据信息量在尽可能不变的情况下,降低数据的处理复杂度,下面给大家介绍一下使用matlab进行主成分分析的方法。
工具/原料
1

matlab

2

主成分分析

方法/步骤
1

在对数据进行主成分分析时,需要对数据标准化处理,以消除量纲的影响,如图所示,使用代码x=zscore(A);对数据进行标准化。原则是原数据减去均值后,除以标准差。

2

标准化后,使用matlab自带主成分分析函数,[coeff,score,latent,tsquare]=princomp(x);如图所示

3

其中,coeff是各个主成分的系数也就是转换矩阵,score是各个主成分的得分,latent是X的特征值,tsquare是每个数据的统计值。这里主要看的coeff、latent。如图所示

4

接下来计算每个特征的贡献率,输入代码latent’;、y=(100*latent/sum(latent))';  如图所示

5

提取主成分的方法是依据前N个特征值的累计贡献率为准则,若累计贡献率为85%以上,则说明这前N个特征可以代表去不数据的绝大部分信息。如图所示(将每个特征的贡献率复制到Excel相加,累计达到85%)前99个特征。

6

由于前99个特征的累计贡献率达到85%。故可以使用此前99个特征的信息表示大部分的原始信息。取前99个特征的特征向量作为转换矩阵,即coeff(:,1:99);降维后的数据B=x*coeff(:,1:99);如图所示,新数据只能99个特征(原数据有841个特征)达到降维的结果。

注意事项

累计贡献率取值根据需要确定!

推荐信息