You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn的OrdinalEncoder调用get_feature_names_out报AttributeError如何解决

问题原因及解决方案

核心原因

scikit-learn的OrdinalEncoder的get_feature_names_out()接口是1.1版本才正式加入的,你当前环境的scikit-learn版本大概率低于1.1,所以会抛出找不到该方法的错误,和你手动给SimpleImputer打补丁没有关系。

解决方法

方案1:升级scikit-learn版本(推荐)

先执行代码查看当前版本:

import sklearn
print(sklearn.__version__)

如果版本号低于1.1,直接执行升级命令即可:

pip install --upgrade scikit-learn

升级完成后重新运行代码即可正常调用get_feature_names_out()。

方案2:给OrdinalEncoder打猴子补丁(无需升级版本)

如果你暂时不能升级scikit-learn,可以参考你给SimpleImputer打补丁的逻辑,给OrdinalEncoder也补充get_feature_names_out方法。OrdinalEncoder的输入输出特征是一一对应的,直接映射输入特征名即可:

OrdinalEncoder.get_feature_names_out = lambda self, names=None: self.feature_names_in_ if names is None else names

如果后续还遇到同类型的一一映射型变换器(比如低版本MinMaxScaler、StandardScaler报错),也可以用同样的逻辑打补丁。

内容的提问来源于stack exchange,提问作者SaukratesK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:06:04