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

bookDéfi : Choix de la Meilleure Valeur de K

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 les meilleures performances.

Une approche courante consiste à utiliser la validation croisée pour évaluer les performances du modèle. Il est possible d’exécuter une boucle et de calculer les scores de validation croisée pour un ensemble 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.

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

Swipe to start coding

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

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

Solution

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

close

Awesome!

Completion rate improved to 4.17

bookDéfi : Choix de 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 les meilleures performances.

Une approche courante consiste à utiliser la validation croisée pour évaluer les performances du modèle. Il est possible d’exécuter une boucle et de calculer les scores de validation croisée pour un ensemble 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.

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

Swipe to start coding

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

  • Initialisez param_grid comme un dictionnaire contenant le paramètre n_neighbors avec les valeurs [3, 9, 18, 27].
  • Créez un objet GridSearchCV en utilisant param_grid avec une validation croisée à 4 plis, entraînez-le et stockez-le dans la variable grid_search.
  • Récupérez le meilleur modèle à partir de grid_search et stockez-le dans la variable best_model.
  • Récupérez le score du meilleur modèle et stockez-le 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

some-alt