用于在Python中查找特征的非排序特征值



我现在正在尝试PCA的一些东西,但对我来说,了解每个特征值的特征非常重要。

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

Sven在评论中提到的是正确的。本征值不存在"默认"排序。每个特征值都与一个特征向量相关联,并且重要的是特征值-特征向量对正确匹配。你会发现所有的语言和软件包都会这样做。

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

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

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

你必须指定你想要什么样的订单。例如,这个矩阵的特征值

    / 0  1 
A = |      |
     1  0 /

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

最新更新