Aide: Problème KNeighbors
Utilisateur anonyme -
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
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.