主成分分析
主要是计算数据的协方差矩阵
通过计算协方差矩阵的特征值,特征向量,得到相应的主要的维度
而协方差矩阵是一个对称阵,得到的特征向量是相互正交。
主成分分析完成了二件事:
(1) 产生的y的坐标是x坐标旋转后的总体的质心处建立变换后的坐标系的中心,因为从每个x中减去了m_x,减去了平均的向量
(2) 产生的y的坐标是x旋转后的形式,因此数据就和特征向量连续起来。
matlab中主成分分析有2个函数,分别是princomp(x), pca
。
princomp后期会被删除
~所以主要介绍下pca函数
Principal component analysis of raw datacollapse all in page
Syntax
- 几种用法
coeff = pca(X)
coeff = pca(X,Name,Value)
[coeff,score,latent] = pca(_)
[coeff,score,latent,tsquared] = pca(_)
[coeff,score,latent,tsquared,explained,mu] = pca(_)
[COEFF, SCORE, latent] = princomp(x);
% x is origanl data of matrix
%% 例子
>> x = [1,2;3,3;3,5;5,4;5,6;6,5;8,7;9,8];
>> [COEFF, SCORE, latent] = princomp(x);
>> COEFF %%协方差矩阵为对称方阵。所以为正交向量特征向量
COEFF =
0.8086 -0.5883
0.5883 0.8086
>> SCORE %%原向量在特征向量上的映射,e'*(x_i - m), m是均值向量,m是新坐标的质心
SCORE =
-4.9995 -0.0728
-2.7939 -0.4407
-1.6173 1.1766
-0.5883 -0.8086
0.5883 0.8086
0.8086 -0.5883
3.6025 -0.1476
4.9995 0.0728
>> latent %% 协方差矩阵的特征值
latent =
10.6764
0.4664
%%验证
>> x_cov = cov(x) %%x的协方差矩阵
x_cov =
7.1429 4.8571
4.8571 4.0000
>> [x,y] = eig(x_cov) %% x的协方差矩阵的特征向量和特征值,与pca中计算的一致
x =
0.5883 -0.8086
-0.8086 -0.5883
y =
0.4664 0
0 10.6764
%pca
%% pcacov 分析协方差矩阵的pca成分
% Principal component analysis on covariance matrix
%Syntax
%COEFF = pcacov(V)
%[COEFF,latent] = pcacov(V)
%[COEFF,latent,explained] = pcacov(V)