无法与GaussianNB配合-ModuleNotFoundError:没有名为“ sklearn.utils._pprint”的模块

时间:2019-09-10 08:11:43

标签: python scikit-learn naivebayes pprint

尝试运行.fit的{​​{1}}方法时,出现以下错误:

GaussianNB

我能够交叉验证:

ModuleNotFoundError: No module named 'sklearn.utils._pprint'

但是以下方法不起作用:

cv_result = cross_val_score(GaussianNB(), X_train, y_train, cv=kfold, scoring=scoring,n_jobs=njobs)

我目前在Anaconda Jupyter笔记本上,并且正在使用以下版本

NB = GaussianNB()
NB.fit(X_train, y_train)

关于导致此问题的原因以及如何解决的任何想法?

1 个答案:

答案 0 :(得分:1)

对于我来说,该命令在scikit-learn 0.21.3版本上可以正常工作。您的ipython和相关模块可能安装在与scikit-learn不同的环境中。您应该能够通过编写脚本并使用python执行测试来进行测试。如果可以,但是不能在ipython控制台或jupyter笔记本中运行,请尝试使用anaconda / pip重新安装ipython,jupyter和scikit-learn。

具体来说,我相信您的错误是由于NB.fit返回了self而引起的。这使jupyter笔记本尝试通过NB方法显示__repr__对象,而该方法又依赖于sklearn.utils._pprint。一个快速的解决方法是更改​​

NB.fit(x,y)

NB = NB.fit(x,y)