Python中查找特征的非排序特征值

Python中查找特征的非排序特征值,python,pca,Python,Pca,我现在正在尝试PCA的一些东西,但对我来说,知道每个特征值的特征是什么是非常重要的 numpy.linalg.eig给出了已排序的对角矩阵,但我希望该矩阵与它们一起位于原始位置。有人知道我怎么做吗?(不是答案,但我需要此评论的高级格式。) 你必须指定你想要什么。例如,该矩阵的特征值 / 0 1 \ A = | | \ 1 0 / 是+1和-1,对应于特征向量(11)和(1-1)。您希望这些特征值的顺序如何?为什么?(不是答案,但我需要此注释的高级格式。) 你必须指

我现在正在尝试PCA的一些东西,但对我来说,知道每个特征值的特征是什么是非常重要的

numpy.linalg.eig
给出了已排序的对角矩阵,但我希望该矩阵与它们一起位于原始位置。有人知道我怎么做吗?

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

你必须指定你想要什么。例如,该矩阵的特征值

    / 0  1 \
A = |      |
    \ 1  0 /
+1
-1
,对应于特征向量
(11)
(1-1)
。您希望这些特征值的顺序如何?为什么?

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

你必须指定你想要什么。例如,该矩阵的特征值

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

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

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

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


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

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

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


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

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