"PCA降维算法总结以及matlab实现PCA(个人的一点理解)"
PCA(主成分分析)是一种常见的统计学方法,用于数据降维,尤其在高维数据处理中非常有用。PCA通过线性变换将原始数据转换到一个新的坐标系中,使得新坐标系里的各维度是按照数据方差大小排列的,第一维度(主成分)拥有最大的方差,第二维度次之,以此类推。这样,通过保留前面几个主要维度,可以有效地降低数据的复杂性,同时减少信息损失。
在MATLAB中,`princomp`函数是实现PCA的主要工具。该函数的输入参数`X`是需要进行PCA处理的数据矩阵,每一行代表一个样本,每一列代表一个特征。函数返回四个输出参数:
1. `coeff`:转换矩阵,即主成分的系数矩阵。这个矩阵的列向量是主成分的方向,行向量是原始特征在主成分上的投影系数。如果将数据乘以这个矩阵,就可以得到数据在主成分空间的表示。
2. `score`:得分矩阵,也称为载荷矩阵。它表示每个样本在新的主成分坐标系中的位置。计算公式是将样本矩阵减去其均值后,再乘以转换矩阵`coeff`。
3. `latent`:解释方差,即每主成分的方差。累积的`latent`值可以告诉我们主成分解释了原始数据多少的方差。通常,我们希望找到能够解释大部分方差的少量主成分。
4. `tsquared`:T平方值,用于判别分析。
在上述描述中,`cumsum(latent)./sum(latent)`计算的是累积方差比例,如果这个比例超过95%,意味着选取的主成分能保留原始数据95%以上的信息。例如,如果前两个主成分的累积方差比例为97.886%,则说明选取前两个主成分进行降维,数据的信息损失很小。
在实际应用中,为了进行降维,我们通常选取解释方差累计达到一定阈值(如95%)的主成分。例如,如果前两个主成分的累积方差比例达到97.886%,那么可以使用`pc(:,1:2)`作为降维后的特征向量,将原本4维的数据降为2维。对于新的样本,同样可以通过乘以`tranMatrix = pc(:,1:2)`进行降维。
PCA在机器学习、数据挖掘和数据分析领域有着广泛的应用,如人脸识别、图像压缩、高维数据预处理等。通过PCA,可以减少计算复杂度,提高模型的训练效率,同时有助于发现数据中的主要模式和结构。