在 Scikit Learn 中运行 SelectKBest 后,“numpy.ndarray”对象没有属性“get_support”错误消息

Posted

技术标签:

【中文标题】在 Scikit Learn 中运行 SelectKBest 后,“numpy.ndarray”对象没有属性“get_support”错误消息【英文标题】:"numpy.ndarray' object has no attribute 'get_support" error message after running SelectKBest in Scikit Learn 【发布时间】:2018-10-31 15:30:41 【问题描述】:

我遇到了一个与这个旧问题相关的问题:The easiest way for getting feature names after running SelectKBest in Scikit Learn

当尝试使用“get_support()”获取所选功能时,我收到错误消息:

numpy.ndarray' 对象没有属性 'get_support

非常感谢您的帮助!

杰夫

【问题讨论】:

【参考方案1】:

我想我找到了错误的原因。我在 fit() 或 fit_transform() 之后的结果上使用了“get_support()”,这导致了错误消息。

我应该在选择器本身上使用“get_support()”(但仍然需要先使用选择器来执行 fit() 或 fit_transform())。

谢谢!

杰夫

【讨论】:

【参考方案2】:

不进行拟合就无法获得支持。您需要进行拟合,以便选择器可以分析数据,然后在选择器上调用get_support(),而不是fit_transform()的输出

目前你正在做类似的事情:

selector = SelectKBest()

#fit_transform returns the data after selecting the best features
new_data = selector.fit_transform(old_data, labels)

#so you are trying to access get_support() on new data, which is not possible
new_data.get_support()

致电fit()fit_transform() 后,执行以下操作:

# get_support is a method of SelectKBest class
selector.get_support()

【讨论】:

感谢您的详细解释。你说的正是发生的事情。我自己的回答肯定没有你说的那么清楚。谢谢!

以上是关于在 Scikit Learn 中运行 SelectKBest 后,“numpy.ndarray”对象没有属性“get_support”错误消息的主要内容,如果未能解决你的问题,请参考以下文章

python中使用scikit-learn的决策树算法运行错误

导入期间 Scikit-learn 中的运行时错误

在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?

scikit-learn 谱聚类:无法找到潜伏在数据中的 NaN

SciKit Learn SVR 运行时间很长

在 scikit-learn 中,DBSCAN 可以使用稀疏矩阵吗?