feature_engine 包的模块没有在 Kaggle 中导入

feature_engine package's modules not getting imported in Kaggle

无法在 Kaggle 编辑器中导入 feature_engine 包的模块。

(首先注意以下代码行在本地计算机的 Jupyter Notebook 中有效,但在 Kaggle 中无效)

为了重现,我在 Kaggle Editor 中做了以下操作

安装 feature_engine 只需常规代码

!pip install feature_engine

正在关注 link which is same as the official doc

然后我根据 official documentation

在 Kaggle Notebook 中输入以下代码

from feature_engine import categorical_encoders as ce

在 运行 此单元格低于错误后。

ImportError: cannot import name 'categorical_encoders' from 'feature_engine' (/opt/conda/lib/python3.7/site-packages/feature_engine/__init__.py)

并且 feature_engine 的任何模块都会出现此错误。例如对于下一行也是如此

from feature_engine import variable_transformers as vt

我遇到错误

ImportError: cannot import name 'variable_transformers' from 'feature_engine' (/opt/conda/lib/python3.7/site-packages/feature_engine/__init__.py)

而且没有简单的方法可以将 Python 升级到 3.8,因为 Kaggle 不允许我们在它的笔记本中指定 python 版本。

在 Kaggle 中,我有最新版本的 feature_engine,如下 运行 !pip show feature_engine

Name: feature-engine
Version: 1.0.2
Summary: Feature engineering package with Scikit-learn's fit transform functionality
Home-page: http://github.com/solegalli/feature_engine
Author: Soledad Galli
Author-email: solegalli@protonmail.com
License: BSD 3 clause
Location: /opt/conda/lib/python3.7/site-packages
Requires: scipy, pandas, statsmodels, scikit-learn, numpy
Required-by: 

找到解决方案后回答我自己的问题。

基本上,我不得不升级feature_engine

的版本

特征引擎 正在积极开发中,定期发布新的或更新的 t运行sformers。因此,下面运行升级

$ pip install -U feature-engine

在新版本 (1.0) 中,我们需要从 feature_engine.encoding 导入分类编码器,如下所示

from feature_engine.encoding import OneHotEncoder

以下格式不再使用:

from feature_engine import categorical_encoders as ce

Official Doc