【发布时间】:2017-07-14 07:33:53
【问题描述】:
我正在做 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 不是进行此类分析的正确方法(我应该改用特征选择方法)吗?
【问题讨论】:
标签: python scikit-learn pca feature-selection