找出在PCA之后我的组件中有哪些功能 [英] Find out which features are in my components after PCA

查看:0
本文介绍了找出在PCA之后我的组件中有哪些功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对我的数据执行了主成分分析。数据如下所示:

df
Out[60]: 
        Drd1_exp1  Drd1_exp2  Drd1_exp3  ...  M7_pppp  M7_puuu  Brain_Region
0            -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr

3            -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr
4            -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr
          ...        ...        ...  ...      ...      ...           ...
150475       -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr
150478       -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr
150479       -1.0       -1.0       -1.0  ...      0.0      0.0          BaGr

我知道使用每一行,直到‘大脑区域’作为特征。我也对它们进行了标准化。 这些功能是不同的实验,它们给了我关于大脑3D图像的信息。 我将向您展示我的代码:

from sklearn.preprocessing import StandardScaler
x = df.loc[:, listend1].values
y= df.loc[:, 'Brain_Region'].values

x = StandardScaler().fit_transform(x)

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
principalComponents = pca.fit_transform(x)
principalDf = pd.DataFrame(data = principalComponents
             , columns = ['principal component 1', 'principal component 2'])

finalDf = pd.concat([principalDf, df[['Brain_Region']]], axis = 1)

然后我绘制了finalDF:

我现在的问题是:我如何找出哪些功能对我的组件有贡献?我如何才能找到并解释数据?

推荐答案

您可以使用pca.components_(或者pca.components,具体取决于skLearning版本)。 它的形状为(n_components, n_features),在您的情况下为(2, n_features),表示数据中最大方差的方向,这反映了特征向量中相应值的大小(更高的幅度-更高的重要性)。您将看到如下内容:

[[0.522 0.26 0.58 0.56],
 [0.37 0.92 0.02 0.06]]

表示对于第一个组件(第一行),第一个、第三个和最后一个特征具有更高的重要性,而对于第二个组件,只有第二个特征重要。

查看sklern PCA attributes description或此post

顺便说一下,您还可以使用包含标签的Random Forest Classifier,在培训后您可以探索功能重要性,例如post

这篇关于找出在PCA之后我的组件中有哪些功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆