Sfida: Ottimizzazione degli Iperparametri con RandomizedSearchCV
Il principio di RandomizedSearchCV è simile a quello di GridSearchCV, ma invece di testare tutte le possibili combinazioni, valuta solo un sottoinsieme campionato casualmente.
Ad esempio, il seguente param_grid contiene 100 combinazioni:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
GridSearchCV testerebbe tutte le 100, il che è dispendioso in termini di tempo. RandomizedSearchCV può invece valutare un sottoinsieme più piccolo, ad esempio 20 combinazioni scelte casualmente. Questo riduce il tempo di calcolo e di solito produce risultati vicini ai migliori.
Il numero di combinazioni da testare è controllato dall'argomento n_iter (il valore predefinito è 10). Per il resto, l'utilizzo è lo stesso di GridSearchCV.
Swipe to start coding
Ti viene fornito un dataset di pinguini già preprocessato e pronto per l'addestramento del modello.
L'obiettivo è ottimizzare gli iperparametri di un modello KNeighborsClassifier utilizzando sia la ricerca a griglia che la ricerca randomizzata.
- Definire la griglia dei parametri denominata
param_gridcon i valori desiderati pern_neighbors,weightsep. - Inizializzare un oggetto
RandomizedSearchCVutilizzando la griglia dei parametri definita e impostaren_iter=20. - Inizializzare un oggetto
GridSearchCVutilizzando la stessa griglia dei parametri. - Addestrare entrambi gli oggetti di ricerca sul dataset utilizzando il metodo
.fit(X, y). - Stampare il miglior stimatore dalla ricerca a griglia utilizzando
.best_estimator_. - Stampare il miglior punteggio di validazione incrociata dalla ricerca randomizzata utilizzando
.best_score_.
Soluzione
È possibile eseguire il codice più volte. Osservare la differenza tra i due punteggi. A volte i punteggi possono essere uguali a causa della presenza dei parametri ottimali tra le combinazioni campionate da RandomizedSearchCV.
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain when to use RandomizedSearchCV instead of GridSearchCV?
How do I choose the right value for n_iter in RandomizedSearchCV?
What are the main advantages and disadvantages of RandomizedSearchCV?
Awesome!
Completion rate improved to 3.13
Sfida: Ottimizzazione degli Iperparametri con RandomizedSearchCV
Scorri per mostrare il menu
Il principio di RandomizedSearchCV è simile a quello di GridSearchCV, ma invece di testare tutte le possibili combinazioni, valuta solo un sottoinsieme campionato casualmente.
Ad esempio, il seguente param_grid contiene 100 combinazioni:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
GridSearchCV testerebbe tutte le 100, il che è dispendioso in termini di tempo. RandomizedSearchCV può invece valutare un sottoinsieme più piccolo, ad esempio 20 combinazioni scelte casualmente. Questo riduce il tempo di calcolo e di solito produce risultati vicini ai migliori.
Il numero di combinazioni da testare è controllato dall'argomento n_iter (il valore predefinito è 10). Per il resto, l'utilizzo è lo stesso di GridSearchCV.
Swipe to start coding
Ti viene fornito un dataset di pinguini già preprocessato e pronto per l'addestramento del modello.
L'obiettivo è ottimizzare gli iperparametri di un modello KNeighborsClassifier utilizzando sia la ricerca a griglia che la ricerca randomizzata.
- Definire la griglia dei parametri denominata
param_gridcon i valori desiderati pern_neighbors,weightsep. - Inizializzare un oggetto
RandomizedSearchCVutilizzando la griglia dei parametri definita e impostaren_iter=20. - Inizializzare un oggetto
GridSearchCVutilizzando la stessa griglia dei parametri. - Addestrare entrambi gli oggetti di ricerca sul dataset utilizzando il metodo
.fit(X, y). - Stampare il miglior stimatore dalla ricerca a griglia utilizzando
.best_estimator_. - Stampare il miglior punteggio di validazione incrociata dalla ricerca randomizzata utilizzando
.best_score_.
Soluzione
È possibile eseguire il codice più volte. Osservare la differenza tra i due punteggi. A volte i punteggi possono essere uguali a causa della presenza dei parametri ottimali tra le combinazioni campionate da RandomizedSearchCV.
Grazie per i tuoi commenti!
single