2 votes

impossible d'ajuster avec GaussianNB - ModuleNotFoundError : Aucun module nommé 'sklearn.utils._pprint'.

En essayant d'exécuter le .fit méthode de GaussianNB Je reçois l'erreur suivante :

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

Je suis capable de faire une validation croisée :

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

Cependant, la méthode suivante ne fonctionne pas :

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

Je suis actuellement sur un Jupyter notebook Anaconda et j'utilise la version suivante

jupyter-client==5.3.1
jupyter-console==6.0.0
jupyter-core==4.5.0

scikit-learn==0.21.3

Avez-vous une idée de la cause de ce problème et de la façon de le résoudre ?

3voto

user2653663 Points 987

Cette commande fonctionne bien sur la version 0.21.3 de scikit-learn pour moi. Il est probable que votre ipython et les modules associés soient installés dans un environnement différent de celui de scikit-learn. Vous devriez être en mesure de tester cela en faisant un script et en l'exécutant avec python. Si cela fonctionne, mais que cela ne fonctionne pas en exécutant dans la console ipython ou dans les notebooks jupyter, essayez de réinstaller ipython, jupyter et scikit-learn avec anaconda/pip.

Pour être précis, je pense que votre erreur est due à NB.fit en retournant sur self . Cela fait que le bloc-notes de Jupyter essaie d'afficher le fichier NB par l'intermédiaire du __repr__ qui, à son tour, s'appuie sur la méthode sklearn.utils._pprint . Une solution rapide serait de changer

NB.fit(x,y)

à

NB = NB.fit(x,y)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X