python - 错误:“ColumnTransformer”对象没有属性“_n_features”
问题描述
我通过加载 .pkl 文件来预测分类模型的值。它在我的本地工作,但在 AWS lambda 函数中引发错误。本地和 AWS 上的 pkl 文件是相同的,所以问题不应该在 pkl 文件中。另外,我正确阅读了 pkl 文件。
错误:“ColumnTransformer”对象没有属性“_n_features”
ind_var = pd.DataFrame({"a":1328, "b":12.0, "c": "MAP")
with BytesIO() as data:
s3.Bucket("xxxxxx").download_fileobj("model.pkl", data)
data.seek(0)
model = joblib.load(data)
print(model.predict(ind_var))
用于管道的代码
numeric_transformer = Pipeline(steps= ["scaler", StandardScaler())])
categorial_transformer = Pipeline(steps = [('imputer', SimpleImputer(strategy='constant', fill_value='missing')),("onehot", OneHotEncoder(handle_unknown = 'ignore'))])
preprocessor = ColumnTransformer(transformers = [("num", numeric_transformer,numeric),("cat",categorial_transformer, cat )])
解决方案
刚刚通过反复试验了解到,由于库版本的不同,会出现此问题。我们可以通过 requirements.txt 查看不同环境下库的版本
推荐阅读
- javascript - 在 javascript 中访问 Protobuf 枚举扩展
- java - JFrame拖动监听器?
- r - 如何比较并找到常数和矩阵的每个元素之间的最小值?
- python - 从 CSV 使用 Seaborn
- r - 试图 ggseasonplot 我的时间序列数据但得到一个错误
- python - Argparser 的一个子解析器,用于两个不同的命令
- python - 有没有办法用 python 脚本修改谷歌文档?
- javascript - 创建相交值的数组
- assembly - 为什么即使 DPMI 主机处于活动状态,INT 31H 也无法正确设置?
- c++ - 为什么第二个连续的 for 循环执行得更快?