1

我现在正在尝试使用 PCA 做一些事情,但了解每个特征值的哪些特征对我来说非常重要。

numpy.linalg.eig给我们已经排序的对角矩阵,但我希望这个矩阵与它们在原始位置。有人知道我怎么做吗?

4

2 回答 2

1

斯文在他的评论中提到的是正确的。特征值没有“默认”排序。每个特征值都与一个特征向量相关联,重要的是特征值-特征向量对正确匹配。你会发现所有的语言和包都会这样做。

因此,如果 R 给你 eigenvalues[e1,e2,e3和 eigenvectors [v1,v2,v3],python 可能会给你(比如说)[e3,e2,e1][v3,v2,v1].

回想一下,特征值告诉您数据中的方差有多少是由与之关联的特征向量解释的。因此,在 PCA 中有用的特征值的自然排序(对我们来说很直观)是按大小(升序或降序)。这样,您可以轻松查看特征值并确定要保留哪些特征值(大,因为它们解释了大部分数据)和丢弃哪些特征值(小,可能是高频特征或只是噪声)

于 2011-06-03T15:25:59.793 回答
0

(不是答案,但我需要此评论的高级格式。)

您必须指定您想要的订购方式。例如,这个矩阵的特征值

    / 0  1 \
A = |      |
    \ 1  0 /

+1-1,对应于特征向量(1 1)(1 -1)。您希望如何对这些特征值进行排序,为什么?

于 2011-06-03T15:01:38.427 回答