La Falla di GridSearchCV
Scorri per mostrare il menu
Prima di utilizzare GridSearchCV, è importante notare che KNeighborsClassifier ha più iperparametri oltre a n_neighbors. Due tra i più importanti sono weights e p.
Pesi
Per impostazione predefinita, il classificatore utilizza weights='uniform', il che significa che tutti i k vicini votano in modo uguale.
Impostando weights='distance' si attribuisce maggiore influenza ai vicini più prossimi, migliorando spesso le previsioni quando i punti vicini sono più rilevanti.
P
Il parametro p controlla la metrica di distanza:
p=1: Distanza di Manhattan;p=2: Distanza euclidea.
Un parametro p può assumere qualsiasi intero positivo. Esistono molte distanze diverse, ma sono più difficili da visualizzare rispetto a p=1 o p=2.
Non preoccuparti se i dettagli di weights o p non sono chiari. Sono introdotti semplicemente per mostrare che ci sono più iperparametri che possono influenzare le predizioni del modello. Considerali come esempi di iperparametri che possono essere ottimizzati.
In precedenza, veniva ottimizzato solo n_neighbors. Per effettuare la ricerca su tutti e tre gli iperparametri, utilizzare:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV prova tutte le possibili combinazioni per trovare la migliore, quindi proverà tutte queste:
Una griglia più ampia come:
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
crea 100 combinazioni. Con una cross-validation a 5 fold, il modello viene addestrato 500 volte. Questo va bene per dataset piccoli, ma per quelli più grandi diventa troppo lento.
Per ridurre il tempo di calcolo, RandomizedSearchCV testa solo un sottoinsieme casuale delle combinazioni, trovando solitamente risultati validi molto più rapidamente rispetto a una ricerca a griglia completa.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione