我使用Scikit学习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/

10-10 06:12