【问题标题】:Non sorted eigenvalues for finding features in Python用于在 Python 中查找特征的非排序特征值
【发布时间】:2011-06-03 13:18:31
【问题描述】:

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

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

【问题讨论】:

  • 特征值没有自然顺序,也没有“原始位置”。
  • 好的,但是在 Python 和 R 中为同一矩阵计算的特征值以不同的顺序给出了相同的值。
  • @jozepinta:我告诉过你,没有自然顺序。你必须选择一个。 Python 和 R 碰巧选择了不同的,但这两种排序都是任意选择。

标签: python pca


【解决方案1】:

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

所以如果 R 给你特征值 [e1,e2,e3 和特征向量 [v1,v2,v3],python 可能会给你(比如说)[e3,e2,e1][v3,v2,v1]

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多