在 PCA 之后找出我的组件中都有哪些功能

Posted

技术标签:

【中文标题】在 PCA 之后找出我的组件中都有哪些功能【英文标题】:Find out which features are in my components after PCA在 PCA 之后找出我的组件中有哪些功能 【发布时间】:2020-10-14 14:28:48 【问题描述】:

我对我的数据执行了 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:

我现在的问题是:我怎样才能知道哪些功能有助于我的组件?我怎样才能找出、解释数据?

【问题讨论】:

这能回答你的问题吗? Feature/Variable importance after a PCA analysis 【参考方案1】:

您可以使用pca.components_(或pca.components,具体取决于sklearn 版本)。 它的形状为(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 之后找出我的组件中都有哪些功能的主要内容,如果未能解决你的问题,请参考以下文章

函数中都有哪些功能,但存储过程中没有? [复制]

LTE 的网络结构中都有哪些网元?作用是啥?

Android WebView 在开发过程中都有哪些坑

总线中都有哪些类型的信号线、分别传送哪种信息?

iOS中都有哪些倒计时App可以在锁屏时显示?

cpu中都有哪些寄存器资源,他们的初始值分别是多少