python - 从 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...
那么有没有办法知道所选功能的名称是什么?
解决方案
这是您可以使用的方法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()]
推荐阅读
- javascript - 制作一个带有3个参数的函数范围,但有例外吗?
- c++ - 无法解析类型`zbar_image_t`
- javascript - 为什么我清除后不重绘图像?
- collections - Java根据属性汇总项目列表
- python - Anaconda 3 Python 命令似乎已损坏
- elixir - 如何在凤凰框架中检查 exq 作业的状态?
- erlang - 从源代码编译 MongooseIM 时 rebar_core 中未捕获的错误
- javascript - vb.net 字符串到chartjs 数据字段?
- code-coverage - 在codecov上,一条线没有着色是什么意思?
- java - Eclipse 中的 Java App Engine 项目在 Localhost 处返回 Server App Engine Standard 无法启动