首页 > 解决方案 > 从 selectKbest 中获取特征名称

问题描述

我使用 Scikit learnselectKbest从 900 个中选择最好的特征,大约 500 个。如下,其中 d 是所有特征的数据框。

from sklearn.feature_selection import SelectKBest, chi2, f_classif
X_new = SelectKBest(chi2, k=491).fit_transform(d, label_vs)

当我现在打印X_new它时,它只给我数字,但我需要所选功能的名称以便以后使用它们。

我尝试了类似X_new.dtype.names但我没有得到任何东西并且我尝试转换X_new为数据框但我得到的唯一列名是

1, 2, 3, 4... 

那么有没有办法知道所选功能的名称是什么?

标签: pythonnumpyscikit-learnnlpfeature-selection

解决方案


这是您可以使用的方法get_support()

chY = SelectKBest(chi2, k=491)
X_new = chY.fit_transform(d, label_vs)
column_names = [column[0]  for column in zip(d.columns,chY.get_support()) if column[1]]

从@AI_Learning 的答案中,您可以通过以下方式获取列名:

column_names = d.columns[chY.get_support()]

推荐阅读