主成分分析:步骤、应用及代码实现
主成分分析概念、目的
主成分分析 (Principal Component Analysis,PCA),是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。
PCA降维的目的,就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到这些维度上,使降维后信息量损失最小。
主成分分析的步骤
1.去除平均值
2.计算协方差矩阵
3.计算协方差矩阵的特征值和特征向量
4.将特征值由大至小排序
5.保留前N个最大的特征值对应的特征向量
6.将原始特征转换到上面得到的N个特征向量构建的新空间中(最后两步,实现了特征压缩)
应用
PCA在计算机视觉学领域的应用
A 数据表示
B 模式识别
C 图像信息压缩
PCA的原理
在图像处理领域中,我们往往要对大量的数据进行分析,而这些变量往往是多维的,如果在样本较少的维度较高的情况下直接分析数据,不但处理起来较为麻烦,而且往往会得到不精确甚至错误的结果。那么,如果我们考虑到每组样本数据中各维度的相关性,并将相关性较大的维度分量进行合并处理(即降维处理),就可以在保证信息量损失较小的情况下降低运算难度,这就是PCA算法的原理。
降维的原理
从线性代数的角度来看,PCA的目标是使用另一组基去重新描述得到的数据空间,而新的一组基要尽量揭示原有数据间的关系。PCA变换的关键思路是找到一组合适的变换基,称为变换矩阵P(由一组正交基组成)。
代码实现
clear;
clc;
X = [2.5 2.4;
0.5 0.7;
2.2 2.9;
1.9 2.2;
3.1 3.0;
2.3 2.7;
2 1.6;
1 1.1;
1.5 1.6;
1.1 0.9;];
[row col] = size(X);
covX = cov(X); %求样本的协方差矩阵
[v d] = eig(covX); %特征值和特征向量
meanX = mean(X); %样本均值
tempX = repmat(meanX,row,1); %row行样本均值
X1 = X - tempX; %X矩阵-样本均值得到的X*矩阵
v1 = v(:,2);
finalData = X1 * v1 ; %最终数据