PCA方法的应用场景

来源:互联网 发布:linux lo网卡 编辑:程序博客网 时间:2024/05/17 21:50

  PCA(Principal Component Analysis , PCA )是主成分分析方法,是一种较为粗糙的降维方法,对于小样本量的数据来说,它不如因子分析方法实用。但是当数据量较大时,主成分分析方法就有了用武之地了。PCA方法常用于人脸识别。
  当样本数据成千上万时,维数上千时,PCA是非常有效的一种降维方法,它能起到的作用有两个:一个是节约存储空间,当数据量过多时,通过减少减少几个维度就可以节约很多空间;另一个是提供计算的速度,将数据降维后,无论是样本数据训练时,还有对新数据做出响应时,速度都会大幅提高。
  要使PCA发挥最大的作用,训练用的原始数据就必须足够多,数据的收集是制约主成分分析发展的障碍之一。比如,人脸识别系统中的原始照片至少要上千,主成分分析的结果才具有意义。而当人的面部表情不同时、有障碍物遮挡面部时、光线过强或过弱时都会影响照片的质量,难以从中提取有效的原始特征数据,也就难以得到好的低维空间。
  除去收集数据需要花费大量精力和资源以外,在主成分分析时,同样需要注意数据的归一化问题。由于变量和变量之间的单位或者量纲不同,比如,人的牙齿长度按毫米计算,眼睛长度却按厘米计算,不同的量纲将导致计算特征值时变量所占比重不同。在进行主成分分析时,需要将所有的变量统一量纲,计算完毕后在还原至原始的量纲,否则计算结果将受到影响。
  为了弥补主成分分析的不足之处,人们尝试了多种方法。比如,在人脸识别系统中,我们考虑收集3D人脸模型而不是2D照片,把3D人脸模型作为训练识别系统的原始数据。这样做可以克服表情、光线、遮挡为对照片识别的阻碍,提取出更多的原始特征数据,从而提高人脸识别系统的精确度。
  在常用的数据分析软件里,有主成分分析模块,比如SPSS软件。也可以用MatLab来进行PCA分析。在Matlab里,通过计算协方差矩阵和特征值矩阵、特征向量的函数等,来实现PCA分析。

1 0