Aide: Problème KNeighbors

Fermé
SebKing Messages postés 6 Date d'inscription samedi 9 juillet 2022 Statut Membre Dernière intervention 1 novembre 2022 - 1 nov. 2022 à 10:51
 Utilisateur anonyme - 1 janv. 2023 à 18:13

Bonjour,

Je travaille actuellement sur un problème de modélisation de la fraude et je souhaite entraîner un modèle s'appuyant sur KNeighborsClassifier, cependant quand je lance ces lignes de code:

# Modèle 2: KNeighborsClassifier
from sklearn.model_selection import GroupKFold
param_grid={'n_neighbors':np.arange(1,20)} #'metric':['minkowski', 'manhattan']
grid=GridSearchCV(KNeighborsClassifier(), param_grid, cv=5)
grid.fit(X_train,y_train)
 

J'obtiens le message suivant qui tourne comme si une boucle infinie avait été créée:

/Users/SebKing/opt/anaconda3/lib/python3.9/site-packages/sklearn/neighbors
/_classification.py:237: FutureWarning: Unlike other reduction functions 
(e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves 
the axis it acts along. In SciPy 1.11.0, this behavior will change: the default 
value of `keepdims` will become False, the `axis` over which the statistic is 
taken will be eliminated, and the value None will no longer be accepted. 
Set `keepdims` to True or False to avoid this warning.

Je ne comprends pas ce que keepdims signifie, j'ai essayé de l'intégrer, mais rien n'y fait.

Auriez-vous une idée

En vous remerciant
Macintosh / Safari 16.0

1 réponse

Utilisateur anonyme
1 janv. 2023 à 18:13

Le message d'avertissement que vous avez reçu signifie que la fonction mode utilisée par KNeighborsClassifier va changer de comportement dans une prochaine version de SciPy. Actuellement, la fonction mode conserve par défaut l'axe le long duquel elle agit et accepte la valeur None pour l'argument axis. Dans SciPy 1.11.0, le comportement par défaut de mode va changer de sorte que l'axe sera éliminé et que None ne sera plus accepté en tant qu'argument.

Pour éviter cet avertissement, vous pouvez définir explicitement l'argument keepdims de mode sur True ou False, selon votre besoin. Par exemple, vous pouvez essayer de modifier votre code de la façon suivante :

grid=GridSearchCV(KNeighborsClassifier(), param_grid, cv=5, keepdims=True)

Cela devrait empêcher l'affichage de l'avertissement. Notez toutefois que cela n'affectera pas le fonctionnement de votre modèle et ne résoudra pas le problème de boucle infinie. Pour résoudre ce problème, vous devriez vérifier les autres parties de votre code pour vous assurer qu'il n'y a pas d'erreur ou de boucle infinie qui empêche l'entraînement de votre modèle.

0