我在我的数据上运行PCA(~250个功能)并且看到所有点都聚集在3个blob中。
是否有可能看到250项功能中哪一项对结果的贡献最大?如果是这样的话?
(使用Scikit-learn实现)
答案 0 :(得分:3)
让我们看看维基百科说的内容:
PCA在数学上被定义为正交线性变换,它将数据转换为新坐标系统,使得数据投影的最大方差位于第一个坐标上(称为第一个坐标)主成分),第二个坐标上的第二个最大方差,依此类推。
了解'如何影响'是原始空间中的矢量,在较小的一个中你也需要投影它们。这是通过以下方式完成的:
res = pca.transform(np.eye(D))
np.eye(n)
创建一个n x n
对角矩阵(一个在对角线上,否则为0)。np.eye(D)
是原始特征空间中的功能res
是您在下部空间的功能投影。有趣的是,res
是一个D x d
矩阵,其中res [i] [j]表示" i 对 有多少功能>Ĵ"
然后,您可以只对列进行求和以得到D x 1
矩阵(称之为 contributiion ,其中每个contribution[i]
是要素的总贡献 i
对它进行排序,您会找到最有贡献的功能:)
不确定是否明确,可以添加任何其他信息。
希望这有帮助, pltrdy