为什么PCA后分类器的准确度会下降,即使总方差的99%被覆盖了?

noo*_*333 1 matlab machine-learning pca

我有一个500x1000的特征向量,主成分分析表明,第一个成分涵盖了超过99%的总方差.因此,我将1000维点替换为1维点,给出500x1特征向量(使用Matlab的pca函数).但是,我的分类器精度最初约为80%,1000个特征现在降至30%,其中1个特征即使超过99%的方差由此特征计算.可能是什么解释或我的方法错了?

(这个问题部分来自我之前的问题,即PCA中第一个成分所涵盖的99%的方差的意义)

编辑:我使用weka的主成分方法来执行降维和支持向量机(SVM)分类器.

bog*_*ron 9

主成分不一定与分类准确性有任何关联.可能存在2变量情况,其中99%的方差对应于第一PC但该PC与数据中的基础类无关.而第二台PC(仅占方差的1%)是可以分类的第二台PC.如果您只保留第一台PC,那么您将失去实际提供对数据进行分类的功能.

在实践中,较小(较低方差)的PC通常与噪声相关联,因此可以从中移除它们,但是不能保证这一点.

考虑一个你有两个变量的情况:一个人的质量(以克为单位)和体温(以摄氏度为单位).您想预测哪些人患有流感,哪些患者没有流感.在这种情况下,体重具有更大的方差,但可能与流感没有相关性,而具有低方差的温度与流感有很强的相关性.在主成分转换之后,第一台PC将与质量强烈对齐(因为它具有更大的方差),因此如果丢弃第二台PC,几乎将失去所有的分类准确度.

重要的是要记住,Principal Components是一种无监督的数据转换.在计算变换时,它不会考虑训练数据的标签(与Fisher的线性判别式相反).

  • 即使在 PCA 后保持 100% 的方差也可能会毁掉分类器,因为某些分类器(例如决策树)对数据集旋转很敏感。 (3认同)
  • 这是一个很好的视觉示例:http://stats.stackexchange.com/a/57166/40604 (2认同)