web-dev-qa-db-fra.com

Le module sklearn. * Est obsolète dans la version 0.22 et sera supprimé dans la version 0.24

Je migre un logiciel de Python 2.7 vers Python 3.

Un problème qui se pose est:

Le module sklearn.neighbors.kde est obsolète dans la version 0.22 et sera supprimé dans la version 0.24. Les classes/fonctions correspondantes doivent plutôt être importées de sklearn.neighbors. Tout ce qui ne peut pas être importé depuis sklearn.neighbors fait désormais partie de l'API privée.

Je ne sais pas quelle ligne cause cela, et je ne sais pas s'il s'agit d'une erreur ou d'un avertissement, et quelles en sont les implications.

Sur python 2.7 tout fonctionne bien.

Comment puis-je m'en débarrasser?

4
Gulzar

Cela fonctionnera jusqu'à ce que vous mettiez à jour votre version de scikit/sklearn. Alors ce package: https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KernelDensity.html vous ne pourrez plus courir. Vous avez maintenant le temps de rechercher des modules similaires si vous souhaitez mettre à jour votre version.

Mais aussi à titre indicatif, vous pouvez également configurer différents environnements avec différentes versions, donc si vous avez besoin de ce module, démarrez simplement un environnement et ne mettez pas à niveau votre version sklear dans cet environnement.

2
PV8

C'est juste un avertissement, pour l'instant - jusqu'à ce que vous mettiez à jour sklearn vers la version 0.24. Ensuite, votre code devra être modifié avant de fonctionner. Cela vous donne un avertissement à ce sujet, afin que vous puissiez corriger votre code à l'avance. Les modifications décrites ci-dessous devraient fonctionner avec votre version actuelle; vous n'avez pas besoin d'attendre la mise à niveau avant de modifier votre code (du moins, c'est ainsi que ces avertissements d'obsolescence fonctionnent généralement).

Les classes/fonctions correspondantes doivent plutôt être importées de sklearn.neighbors.

Si je lis correctement ce message, il dit que si vous utilisez une fonction comme sklearn.neighbours.kde.some_function() dans votre code maintenant, vous devez la changer en sklearn.neighbours.some_function().

Tout ce qui ne peut pas être importé depuis sklearn.neighbors fait désormais partie de l'API privée.

Cela semble indiquer que certaines fonctions ne seront peut-être plus disponibles pour vous, même en utilisant la modification ci-dessus.

1
butterflyknife