我使用 Scikit learn selectKbest
选择最佳特征,从 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...
有没有办法知道所选功能的名称是什么?
最佳答案
以下是使用 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()]
关于python - 从 selectKbest 获取特征名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54560611/