尽管安装了最新的 sklearn (0.19.1),但出现“ModuleNotFoundError: No module named 'sklearn.impute'”

Posted

技术标签:

【中文标题】尽管安装了最新的 sklearn (0.19.1),但出现“ModuleNotFoundError: No module named \'sklearn.impute\'”【英文标题】:Getting "ModuleNotFoundError: No module named 'sklearn.impute'" despite having latest sklearn installed (0.19.1)尽管安装了最新的 sklearn (0.19.1),但出现“ModuleNotFoundError: No module named 'sklearn.impute'” 【发布时间】:2018-11-23 10:06:09 【问题描述】:

我正在做一场 Kaggle 比赛,需要填补一些缺失的数据。我已经安装了最新的Anaconda(4.5.4) 以及所有相关的依赖项(即scikit-learn (0.19.1))。

当我尝试导入模块时,出现以下错误:

ModuleNotFoundError:没有名为“sklearn.impute”的模块

我尝试导入不同的 sklearn 模块,没有任何问题。似乎只有 sklearn.impute 丢失了。

【问题讨论】:

我认为sklearn.impute 可能是版本 0.20.1 (dev) 的东西。 0.19.1 有sklearn.preprocessing.imputation 【参考方案1】:

正如 BallpointBen 指出的,sklearn.impute 尚未在最新的稳定版本 (0.19.1) 中发布。目前它仅在 0.20.dev0 中受支持。

【讨论】:

【参考方案2】:

这是版本错误。这是一个在 Jupyter Notebook 中工作时对我有用的修复程序。从您的终端:

conda 更新 anaconda

conda 更新 scikit-learn

然后重启你的 jupyter 内核

【讨论】:

【参考方案3】:

试试这个 -

from sklearn.preprocessing import Imputer

适用于 python3.5 和 python3.6

(进出jupyter笔记本)

【讨论】:

【参考方案4】:

你可以使用 从 sklearn.preprocessing 导入 Imputer 它有效。

【讨论】:

这是如何以及为什么起作用的? How do I write a good answer?【参考方案5】:

另一个选项是 SimpleImputer,它工作正常:

从 sklearn.impute 导入 SimpleImputer

【讨论】:

【参考方案6】:

我们环境的最新版本有 sklearn 0.23.1,其中包括 sklearn.impute。

import sklearn 
print (sklearn.__version__)

输出:

0.23.1

如果库未更新,请转到 Anaconda Prompt 并

conda update sklearn

【讨论】:

【参考方案7】:

sklearn 23.x版本请参考https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_0_23_0.html

有两种使用 SimpleImputer 的方法。 1 imputer.SimpleImputer

from sklearn import impute
imputer = impute.SimpleImputer(missing_values=np.nan, strategy='mean')

2 简单计算器

from sklearn.impute import SimpleImputer  
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')

【讨论】:

嗨 Mayur,感谢您在这里提供帮助,并祝贺您的​​第一次贡献。但是,您似乎在重复问题中提到的步骤,而不是提供解决方案。在回答此论坛之前,使用指定软件包的版本尝试并重现问题可能会有所帮助。

以上是关于尽管安装了最新的 sklearn (0.19.1),但出现“ModuleNotFoundError: No module named 'sklearn.impute'”的主要内容,如果未能解决你的问题,请参考以下文章

sklearn naive bayes MultinomialNB:尽管我有 2 个类,为啥我只得到一个带系数的数组?

在ubuntu服务器中搭建jupyter notebook,并安装numpy,scipy, matplotlibm, pandas, sklearn

尽管没有一维数组,但在 Sklearn 中通过一维数组获得弃用警告

在ubuntu服务器中搭建jupyter notebook,并安装numpy,scipy, matplotlibm, pandas, sklearn///tensorflow

在ubuntu服务器中搭建jupyter notebook,并安装numpy,scipy, matplotlibm, pandas, sklearn///tensorflow

尽管我使用相同的输入,为啥 sm.OLS 和 sklearn.linear_model 得到不同的结果?