我有一个问题我在spark上写了我的脚本,当我运行脚本时我遇到了导入问题,但我不明白为什么,因为当我在本地通过spyder运行相同的脚本时,我不会&#39 ;得到这个错误。 那为什么我会收到这个错误?是Bluemix有问题吗?
脚本:
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import preprocessing
from sklearn.preprocessing import Imputer
from sklearn.metrics import roc_auc_score
我的错误是:
<ipython-input-2-13d49864f8d7> in <module>()
66 from sklearn import preprocessing
67 #from sklearn.preprocessing import Imputer
---> 68 from sklearn.metrics import roc_auc_score
ImportError: cannot import name roc_auc_score
or
from sklearn.ensemble import RandomForestClassifier
4 import sklearn.preprocessing as p
----> 5 from sklearn.preprocessing import Imputer
6 #import sklearn.metrics as sm
7 from sklearn.metrics import roc_auc_score
ImportError: cannot import name Impute
答案 0 :(得分:3)
解决方法是在用户site-packages中安装较新版本的scikit-learn
,并从系统site-packages中导出该版本而不是scikit-learn 0.11
。
1。)安装较新版本的scikit-learn
(忽略输出“Successfully installed scikit-learn-0.11”):
!pip install --user --upgrade scikit-learn
2.)显示用户名:
!whoami
3.。)在系统站点包的路径前设置用户站点包的路径。使用步骤2中的用户名作为变量USER_NAME:
import sys
sys.path.insert(0,"/gpfs/fs01/user/USER_NAME/.local/lib/python2.7/site-packages")
4.)检查scikit-learn
版本:
import sklearn
sklearn.__version__
以下代码应在前面的步骤之后运行:
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import preprocessing
from sklearn.preprocessing import Imputer
from sklearn.metrics import roc_auc_score
重新启动内核后,必须再次执行第3步,才能从用户site-packages导入更新版本的scikit-learn
!
答案 1 :(得分:1)
scikit_learn的版本0.11
(预装在Bluemix笔记本中)Imputer
中没有preprocessing
。因此ImportError
。
在Bluemix笔记本中,您可以在Environment
标签的右侧栏中找到该库的版本。
答案 2 :(得分:0)
所以我不得不使用
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
代替
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values='NaN', strategy='mean', axis=0)
否则,会出现以下错误。
from sklearn.preprocessing import Imputer
ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing'
答案 3 :(得分:0)
在juypter笔记本中,它工作正常
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')