我正在做PCA,我对哪些原始特征最重要感兴趣。让我来说明这一个例子:主要组件分析的最重要的原始特征
import numpy as np
from sklearn.decomposition import PCA
X = np.array([[1,-1, -1,-1], [1,-2, -1,-1], [1,-3, -2,-1], [1,1, 1,-1], [1,2,1,-1], [1,3, 2,-0.5]])
print(X)
,输出:
[[ 1. -1. -1. -1. ]
[ 1. -2. -1. -1. ]
[ 1. -3. -2. -1. ]
[ 1. 1. 1. -1. ]
[ 1. 2. 1. -1. ]
[ 1. 3. 2. -0.5]]
直观地说,一个已经可以说是功能1和功能4不很重要,因为他们的低方差。让我们将这套PCA:
pca = PCA(n_components=2)
pca.fit_transform(X)
comps = pca.components_
输出:
array([[ 0. , 0.8376103 , 0.54436943, 0.04550712],
[-0. , 0.54564656, -0.8297757 , -0.11722679]])
此输出表示各两个主成分的每个原始特征的重要性(见this仅供参考)。换句话说,对于第一个主成分,特征2是最重要的,然后是特征3.对于第二个主成分,特征3看起来最重要。
问题是,哪个功能最重要,最重要的是哪一秒?我可以使用component_
属性吗?或者我错了,PCA不是做这种分析的正确方法(我应该使用特征选择方法)?
我们可以对特征2的这个特征重要性做一个测量吗?类似0.9893 * 0.8376? – Guido
我从来没有见过任何人以你描述的方式使用解释的方差和加载。你正在做的是基本上通过组件的贡献来衡量负载。这是不寻常的,但它应该工作。 – Schmuddi
既然你说这很不寻常,我对其他人对这个问题的看法非常感兴趣 – Guido