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 | Section
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamentaux de l'apprentissage supervisé

bookDéfi : Choisir 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 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 score le plus élevé. Il s’agit de la méthode la plus largement utilisée.

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

Constructeur :

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — l’objet modèle ;
  • param_grid — dictionnaire avec les valeurs de paramètres à tester ;
  • scoring — la métrique utilisée pour le score de validation croisée ;
  • cv — le nombre de plis (5 par défaut) ;

Méthodes :

  • fit(X, y) — entraîne les modèles en utilisant X, y ;
  • predict(X) — prédit la classe pour X ;
  • score(X, y) — retourne la précision pour l’ensemble X, y ;

Attributs :

  • best_estimator_ — objet du modèle avec le meilleur score ;
  • best_score_ — le score du best_estimator_.

Le paramètre param_grid prend un dictionnaire où 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.

  • 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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 20
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

bookDé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 score le plus élevé. Il s’agit de la méthode la plus largement utilisée.

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

Constructeur :

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — l’objet modèle ;
  • param_grid — dictionnaire avec les valeurs de paramètres à tester ;
  • scoring — la métrique utilisée pour le score de validation croisée ;
  • cv — le nombre de plis (5 par défaut) ;

Méthodes :

  • fit(X, y) — entraîne les modèles en utilisant X, y ;
  • predict(X) — prédit la classe pour X ;
  • score(X, y) — retourne la précision pour l’ensemble X, y ;

Attributs :

  • best_estimator_ — objet du modèle avec le meilleur score ;
  • best_score_ — le score du best_estimator_.

Le paramètre param_grid prend un dictionnaire où 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.

  • 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 20
single

single

some-alt