Dé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 dubest_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_.
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_gridcomme un dictionnaire contenant le paramètren_neighborsavec les valeurs[3, 9, 18, 27]. - Créer un objet
GridSearchCVen utilisantparam_gridavec une validation croisée à 4 plis, l'entraîner et le stocker dans la variablegrid_search. - Récupérer le meilleur modèle à partir de
grid_searchet le stocker dans la variablebest_model. - Récupérer le score du meilleur modèle et le stocker dans la variable
best_score.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 3.33
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 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 dubest_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_.
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_gridcomme un dictionnaire contenant le paramètren_neighborsavec les valeurs[3, 9, 18, 27]. - Créer un objet
GridSearchCVen utilisantparam_gridavec une validation croisée à 4 plis, l'entraîner et le stocker dans la variablegrid_search. - Récupérer le meilleur modèle à partir de
grid_searchet le stocker dans la variablebest_model. - Récupérer le score du meilleur modèle et le stocker dans la variable
best_score.
Solution
Merci pour vos commentaires !
single