python - 无法适应 GaussianNB - ModuleNotFoundError: No module named 'sklearn.utils._pprint'
问题描述
尝试运行 的.fit
方法时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)
但是以下不起作用:
NB = GaussianNB()
NB.fit(X_train, y_train)
我目前正在使用 Anaconda Jupyter 笔记本并使用以下版本
jupyter-client==5.3.1
jupyter-console==6.0.0
jupyter-core==4.5.0
scikit-learn==0.21.3
关于是什么原因以及如何解决它的任何想法?
解决方案
该命令对我来说在 scikit-learn 0.21.3 版上运行良好。您的 ipython 和相关模块可能安装在与 scikit-learn 不同的环境中。您应该能够通过编写脚本并使用 python 执行它来测试它。如果可行,但在 ipython 控制台或 jupyter 笔记本中无法运行,请尝试使用 anaconda/pip 重新安装 ipython、jupyter 和 scikit-learn。
具体来说,我认为您的错误是由于NB.fit
返回self
. 这使得 jupyter notebook 试图NB
通过该方法显示对象__repr__
,而该方法又依赖于sklearn.utils._pprint
. 一个快速的解决办法是改变
NB.fit(x,y)
至
NB = NB.fit(x,y)
推荐阅读
- java - String.format 与 HTML 的使用没有转换问题
- elasticsearch - 弹性搜索与 Django 弹性搜索
- javascript - 未处理的拒绝(TypeError):firebase_app__WEBPACK_IMPORTED_MODULE_18__.default.auth(...).updateProfile 不是函数
- pandas - 如何根据列表头中的 TH 和 PR 组合这些列表
- wordpress - 我想更改我的 wordpress pod 域名
- typescript - 强制 TypeScript 接口包含特定键是否可行?
- matlab - Matlab啁啾持续时间比它应该长
- html - 在单个页面上使用两个(猫头鹰)轮播不起作用
- javascript - 60 秒后仅调用一次函数
- python - plt.show 不在另一个线程上工作,仅在主线程上