我对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" ]
[ 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 decompositionpca = decomposition.PCA()pca.fit(X_norm)scores = pca.explained_variance_
回答:
虽然我不知道数据集,但我建议你在使用PCA之前对特征进行缩放(这样可以最大化沿轴的方差)。我认为你的代码中的X_norm指的是这个。
通过使用PCA,我们的目标是降低维度。为了实现这一点,我们将从一个包含所有X变量的特征空间开始,在你的情况下,最终会得到该空间的投影,这通常是一个不同的特征(子)空间。
在实践中,当特征之间存在相关性时,PCA可以帮助你将这种相关性投影到更小的维度上。
想想看,如果我拿着一张纸放在桌子上,上面布满了点,我需要第三个维度来表示这个数据集吗?可能不需要,因为所有的点都在纸上,可以在二维空间中表示。
当你试图决定从新的特征空间中使用多少个主成分时,你可以查看解释方差,它会告诉你每个主成分包含多少信息。
当我查看你的数据中的主成分时,我发现大约85%的方差可以归因于前6个主成分。
你也可以设置n_components。例如,如果你使用n_components=2,那么你的转换后的数据集将有2个特征。