La Faille de GridSearchCV
Avant d'utiliser GridSearchCV, il est important de noter que KNeighborsClassifier possède plus d'hyperparamètres que n_neighbors. Deux paramètres importants sont weights et p.
Poids
Par défaut, le classificateur utilise weights='uniform', ce qui signifie que tous les k voisins votent de manière égale.
Définir weights='distance' accorde plus d'influence aux voisins les plus proches, ce qui améliore souvent les prédictions lorsque les points proches sont plus pertinents.
P
Le paramètre p contrôle la métrique de distance :
p=1: distance de Manhattan ;p=2: distance euclidienne.
Un paramètre p peut prendre n'importe quel entier positif. Il existe de nombreuses distances différentes, mais elles sont plus difficiles à visualiser que p=1 ou p=2.
Ne vous inquiétez pas si les détails de weights ou p ne sont pas clairs. Ils sont présentés simplement pour montrer qu'il existe plus d'un hyperparamètre pouvant influencer les prédictions du modèle. Considérez-les comme des exemples d'hyperparamètres pouvant être ajustés.
Auparavant, seul n_neighbors était ajusté. Pour effectuer une recherche sur les trois hyperparamètres, utilisez :
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV essaie toutes les combinaisons possibles pour trouver la meilleure, il testera donc toutes celles-ci :
Une grille plus grande comme :
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
crée 100 combinaisons. Avec une validation croisée à 5 plis, le modèle est entraîné 500 fois. Cela convient pour les petits jeux de données, mais devient trop lent pour les plus volumineux.
Pour réduire le temps de calcul, RandomizedSearchCV teste uniquement un sous-ensemble aléatoire de combinaisons, trouvant généralement des résultats solides beaucoup plus rapidement qu'une recherche exhaustive sur grille.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain how RandomizedSearchCV selects the combinations to test?
What are some best practices for choosing the range of hyperparameters?
How do I interpret the results from GridSearchCV or RandomizedSearchCV?
Awesome!
Completion rate improved to 3.13
La Faille de GridSearchCV
Glissez pour afficher le menu
Avant d'utiliser GridSearchCV, il est important de noter que KNeighborsClassifier possède plus d'hyperparamètres que n_neighbors. Deux paramètres importants sont weights et p.
Poids
Par défaut, le classificateur utilise weights='uniform', ce qui signifie que tous les k voisins votent de manière égale.
Définir weights='distance' accorde plus d'influence aux voisins les plus proches, ce qui améliore souvent les prédictions lorsque les points proches sont plus pertinents.
P
Le paramètre p contrôle la métrique de distance :
p=1: distance de Manhattan ;p=2: distance euclidienne.
Un paramètre p peut prendre n'importe quel entier positif. Il existe de nombreuses distances différentes, mais elles sont plus difficiles à visualiser que p=1 ou p=2.
Ne vous inquiétez pas si les détails de weights ou p ne sont pas clairs. Ils sont présentés simplement pour montrer qu'il existe plus d'un hyperparamètre pouvant influencer les prédictions du modèle. Considérez-les comme des exemples d'hyperparamètres pouvant être ajustés.
Auparavant, seul n_neighbors était ajusté. Pour effectuer une recherche sur les trois hyperparamètres, utilisez :
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV essaie toutes les combinaisons possibles pour trouver la meilleure, il testera donc toutes celles-ci :
Une grille plus grande comme :
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
crée 100 combinaisons. Avec une validation croisée à 5 plis, le modèle est entraîné 500 fois. Cela convient pour les petits jeux de données, mais devient trop lent pour les plus volumineux.
Pour réduire le temps de calcul, RandomizedSearchCV teste uniquement un sous-ensemble aléatoire de combinaisons, trouvant généralement des résultats solides beaucoup plus rapidement qu'une recherche exhaustive sur grille.
Merci pour vos commentaires !