在 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 中运行 predict_proba() 后如何保持行索引?