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