数据压缩第二次作业
数据压缩第二次作业
作业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
作者:タン