从selectKbes获取功能名称

2024-09-28 01:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用scikitlearnselectKbest从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转换为数据帧,但是我得到的唯一列名称是

^{pr2}$

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


Tags: 数据fromimport功能名称new特性sklearn
2条回答

下面是使用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的答案中,您可以通过以下方式获得列名:

^{pr2}$

您可以使用feature_selection的.get_support()参数从初始数据帧中获取特性名称。在

feature_selector = SelectKBest(chi2, k=491)
d.columns[feature_selector.get_support()]

工作示例:

^{pr2}$

输出:

Index(['feaure 5', 'feaure 6', 'feaure 13', 'feaure 19', 'feaure 20', 'feaure 21', 'feaure 26', 'feaure 28', 'feaure 30', 'feaure 33', 'feaure 34', 'feaure 41', 'feaure 42', 'feaure 43', 'feaure 44', 'feaure 46', 'feaure 54', 'feaure 58', 'feaure 61', 'feaure 62'], dtype='object')

相关问题 更多 >

    热门问题