PCA解释方差分析

时间:2017-05-02 15:13:28

标签: python machine-learning pca

我对PCA很新。 我的模型有11个X变量。这些是X变量标签

x = ['Day','Month', 'Year', 'Rolling Average','Holiday Effect', 'Day of the Week', 'Week of the Year', 'Weekend Effect', 'Last Day of the Month', "Quarter" ]

这是我根据解释的方差生成的图表。 x轴是主要成分。 enter image description here

[  3.47567089e-01   1.72406623e-01   1.68663799e-01   8.86739892e-02
   4.06427375e-02   2.75054035e-02   2.26578769e-02   5.72892368e-03
   2.49272688e-03   6.37160140e-05]

我需要知道我是否有很好的功能选择。我怎样才能知道哪个功能贡献最大。

from sklearn import decomposition
pca = decomposition.PCA()
pca.fit(X_norm)
scores = pca.explained_variance_

1 个答案:

答案 0 :(得分:0)

虽然我不知道数据集,但我建议您在使用PCA之前缩放功能(方差将沿轴最大化)。我认为X_norm是指你代码中的那个。

通过使用PCA,我们的目标是降低维度。为了做到这一点,我们将从一个包含所有X变量的特征空间开始,并最终得到该空间的投影,通常是一个不同的特征(子)空间。

实际上,当您在要素之间存在相关性时,PCA可以帮助您将该关联投影到较小的维度。

想想看,如果我在桌子上拿着一张纸上装满了点,我是否需要第三维代表该数据集?可能不是,因为所有的点都在纸上,可以在2D空间中表示。

当您尝试确定将在新功能空间中使用多少主要组件时,您可以查看已解释的方差,它将告诉您每个主要组件的信息量。

当我查看数据中的主要组成部分时,我发现大约85%的差异可归因于前6个主要组成部分。

您还可以设置n_components。例如,如果使用n_components = 2,则转换后的数据集将具有2个要素。