Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara La Falla di GridSearchCV | Modellazione
Introduzione al Machine Learning con Python

bookLa Falla di GridSearchCV

Prima di utilizzare GridSearchCV, è importante notare che KNeighborsClassifier dispone di più iperparametri oltre a n_neighbors. Due tra i più rilevanti sono weights e p.

Weights

Per impostazione predefinita, il classificatore utilizza weights='uniform', ovvero tutti i k vicini hanno lo stesso peso nel voto. Impostando weights='distance', i vicini più prossimi hanno maggiore influenza, migliorando spesso le previsioni quando i punti vicini sono più rilevanti.

P

Il parametro p determina 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.

Note
Nota

Non preoccuparti se i dettagli di weights o p non sono chiari. Sono introdotti semplicemente per mostrare che esiste più di un iperparametro che può influenzare le previsioni 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 testerà 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-validazione 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 di combinazioni, trovando solitamente risultati validi molto più rapidamente rispetto a una ricerca su griglia completa.

question mark

Il principale problema di GridSearchCV è che prova tutte le possibili combinazioni (di quelle specificate in param_grid), il che può richiedere molto tempo. Questa affermazione è corretta?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.13

bookLa Falla di GridSearchCV

Scorri per mostrare il menu

Prima di utilizzare GridSearchCV, è importante notare che KNeighborsClassifier dispone di più iperparametri oltre a n_neighbors. Due tra i più rilevanti sono weights e p.

Weights

Per impostazione predefinita, il classificatore utilizza weights='uniform', ovvero tutti i k vicini hanno lo stesso peso nel voto. Impostando weights='distance', i vicini più prossimi hanno maggiore influenza, migliorando spesso le previsioni quando i punti vicini sono più rilevanti.

P

Il parametro p determina 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.

Note
Nota

Non preoccuparti se i dettagli di weights o p non sono chiari. Sono introdotti semplicemente per mostrare che esiste più di un iperparametro che può influenzare le previsioni 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 testerà 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-validazione 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 di combinazioni, trovando solitamente risultati validi molto più rapidamente rispetto a una ricerca su griglia completa.

question mark

Il principale problema di GridSearchCV è che prova tutte le possibili combinazioni (di quelle specificate in param_grid), il che può richiedere molto tempo. Questa affermazione è corretta?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7
some-alt