数据压缩第二次作业

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

主成分分析的步骤:
1.利用原矩阵计算出协方差矩阵;
2.求出矩阵的特征值和特征向量;
3.矩阵对角化(特征值由大到小从上到下排列);
4.数据降维,生成降维后的新的矩阵。

主成分分析的应用:主成分分析作为基础的数学分析方法,其实际应用十分广泛,比如人口统计学、数量地理学、分子动力学模拟、数学建模、数理分析等学科中均有应用,是一种常用的多变量分析方法。

Matlab代码实现:
Matlab中有corrcoef函数用于求矩阵的相关系数矩阵,pcacov函数用于求特征值、因子贡献率、降维后的矩阵,所以进行主成分分析很简便。

代码:
clc
clear all
close all

X=[1 100 87 110 102
2 82 87 109 102
3 128 87 132 117
4 106 77 105 100
5 105 79 113 102
6 112 82 114 106
7 95 75 105 96
8 102 74 96 94
9 107 76 110 98
10 98 83 111 104
];%原数据数组
X=X(:,2:5);%第一列的序号与目标无关,可删去
Y=corrcoef(X);%求相关系数矩阵Y
[new, eigenvalue, contribution]=pcacov(Y)%求降维后的矩阵new,特征值eigenvalue,因子贡献率contribution

程序运行结果:
Y =

1.0000    0.0459    0.6578    0.6376
0.0459    1.0000    0.6446    0.7345
0.6578    0.6446    1.0000    0.9520
0.6376    0.7345    0.9520    1.0000

new =

0.3995    0.7279   -0.5115   -0.2212
0.4244   -0.6832   -0.5055   -0.3125
0.5693    0.0414    0.6936   -0.4394
0.5798   -0.0422    0.0414    0.8126

(注:用Matlab求出的降维后的矩阵与实际相比少一个负号)

eigenvalue =

2.9116
0.9573
0.1019
0.0292

contribution =

72.7895
23.9335
2.5479
0.7292

你可能感兴趣的:(matlab)