PCA Explained Variance Analysis

我对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 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个特征。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注