无法与GaussianNB ModuleNotFoundError匹配:没有名为“”的模块sklearn.utils文件“打印”

2024-03-29 07:20:38 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试运行GaussianNB.fit方法时,收到以下错误:

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

你知道是什么引起的吗?怎么解决?你知道吗


Tags: 方法no错误jupytertrainutilssklearncv
1条回答
网友
1楼 · 发布于 2024-03-29 07:20:38

这个命令在sciketlearnversion0.21.3上运行得很好。很可能您的ipython和相关模块安装在与scikit learn不同的环境中。您应该能够通过制作一个脚本并用python执行它来测试这一点。如果可以,但在ipython控制台或jupyter笔记本中运行不起作用,请尝试用anaconda/pip重新安装ipython、jupyter和scikit learn。你知道吗

具体来说,我认为您的错误是由于NB.fit返回self。这使得jupyter笔记本试图通过__repr__方法显示NB对象,而sklearn.utils._pprint方法又依赖于sklearn.utils._pprint。一个快速的解决办法就是改变

NB.fit(x,y)

NB = NB.fit(x,y)

相关问题 更多 >