使用PCA进行特征选择

时间:2013-05-27 13:10:53

标签: pca feature-selection

数据集由N个元素和K个变量组成。使用PCA我可以减少变量的数量,但是如何检查K中的哪些变量提供了最多的信息呢?

例如,我有这样的数据集:

1 1 1 2
2 2 1 4
3 3 2 11
1 1 2 7
2 2 3 14
3 3 3 16
1 1 4 17
2 2 4 19
3 3 3 16

我知道第1列是相同的,第2列和第4列是由关系确定的:2 * 1st + 5 * 3rd-5。因此,第1列和第3列提供最多信息,其余不提供任何其他信息。但是如何使用PCA来计算呢?

1 个答案:

答案 0 :(得分:2)

对于你的例子:

           PC1         PC2           PC3           PC4
[1,] 0.3516359 -0.79142416  2.497231e-17 -1.299998e-16
[2,] 0.3516359 -0.79142416  1.713028e-16  1.168541e-16
[3,] 1.0831644  0.32331520  4.906878e-16 -3.286408e-17
[4,] 6.1190936  0.03372767 -9.813756e-17  6.572817e-18

主成分是协方差矩阵的sqrt(特征值)x特征向量(由于Cov是对称正半正定,因此保证实数和正交)。

你可以在你的例子中看到,两个因子足以解释舍入容差内的所有变量(即协方差矩阵的'秩'为2),因为PC3和PC4几乎为零。

这有效地旋转到一个向量空间,该向量空间使轴与隐藏变量对齐。要谈论原始问题中的列,您需要映射回来。例如。你可以看看最大的项目;在这里我们说PC1主要与'Col 4'相关联,但这是任意的,PC2在'Col 1'和'Col 2'上具有相同的权重 - 两种选择看起来都一样好。记住相关性并不意味着因果关系。

相关问题