Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Choisir la Meilleure Valeur de K | Classificateur k-NN
Classification avec Python
Section 1. Chapitre 7
single

single

Défi : Choisir la Meilleure Valeur de K

Glissez pour afficher le menu

Comme montré dans les chapitres précédents, les prédictions du modèle peuvent varier en fonction de la valeur de k (le nombre de voisins). Lors de la construction d’un modèle k-NN, il est important de choisir la valeur de k qui offre la meilleure performance.

Une approche courante consiste à utiliser la validation croisée pour évaluer la performance du modèle. Il est possible d’exécuter une boucle et de calculer les scores de validation croisée pour une plage de valeurs de k, puis de sélectionner celle qui obtient le meilleur score. Il s’agit de la méthode la plus largement utilisée.

Pour réaliser cela, sklearn propose un outil pratique : la classe GridSearchCV.

Classe GridSearchCV

Le paramètre param_grid prend un dictionnaire dont les clés sont les noms des paramètres et les valeurs sont des listes d’options à tester. Par exemple, pour tester les valeurs de 1 à 99 pour n_neighbors, on peut écrire :

param_grid = {'n_neighbors': range(1, 100)}

L’appel de la méthode .fit(X, y) sur l’objet GridSearchCV va parcourir la grille de paramètres pour trouver les meilleurs paramètres puis réentraîner le modèle sur l’ensemble du jeu de données en utilisant ces meilleurs paramètres.

Il est possible d’accéder au meilleur score via l’attribut .best_score_ et de faire des prédictions avec le modèle optimisé en utilisant la méthode .predict(). De même, il est possible de récupérer le meilleur modèle lui-même via l’attribut .best_estimator_.

Tâche

Glissez pour commencer à coder

Vous disposez du jeu de données des évaluations Star Wars stocké sous forme de DataFrame dans la variable df.

  • Initialiser param_grid comme un dictionnaire contenant le paramètre n_neighbors avec les valeurs [3, 9, 18, 27].
  • Créer un objet GridSearchCV en utilisant param_grid avec une validation croisée à 4 plis, l'entraîner et le stocker dans la variable grid_search.
  • Récupérer le meilleur modèle à partir de grid_search et le stocker dans la variable best_model.
  • Récupérer le score du meilleur modèle et le stocker dans la variable best_score.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 7
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt