Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Scelta del Miglior Valore di K | Sezione
Fondamenti di Apprendimento Supervisionato

bookSfida: Scelta del Miglior Valore di K

Come mostrato nei capitoli precedenti, le previsioni del modello possono variare a seconda del valore di k (il numero di vicini). Quando si costruisce un modello k-NN, è importante scegliere il valore di k che offre le migliori prestazioni.

Un approccio comune consiste nell'utilizzare la validazione incrociata per valutare le prestazioni del modello. È possibile eseguire un ciclo e calcolare i punteggi di validazione incrociata per un intervallo di valori di k, quindi selezionare quello con il punteggio più alto. Questo è il metodo più ampiamente utilizzato.

Per eseguire questa operazione, sklearn offre uno strumento pratico: la classe GridSearchCV.

Costruttore:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — oggetto modello;
  • param_grid — dizionario con i valori dei parametri da esplorare;
  • scoring — metrica utilizzata per il punteggio della validazione incrociata;
  • cv — numero di fold (5 per impostazione predefinita);

Metodi:

  • fit(X, y) — addestramento dei modelli utilizzando X, y;
  • predict(X) — previsione della classe per X;
  • score(X, y) — restituisce l'accuratezza per il set X, y;

Attributi:

  • best_estimator_ — oggetto del modello con il punteggio più alto;
  • best_score_ — punteggio del best_estimator_.

Il parametro param_grid accetta un dizionario in cui le chiavi sono i nomi dei parametri e i valori sono le liste delle opzioni da provare. Ad esempio, per testare i valori da 1 a 99 per n_neighbors, si può scrivere:

param_grid = {'n_neighbors': range(1, 100)}

Chiamando il metodo .fit(X, y) sull'oggetto GridSearchCV verrà eseguita una ricerca nella griglia dei parametri per trovare i migliori parametri e quindi ri-addestrare il modello sull'intero dataset utilizzando tali parametri ottimali.

È possibile accedere al miglior punteggio utilizzando l'attributo .best_score_ ed effettuare previsioni con il modello ottimizzato tramite il metodo .predict(). Analogamente, è possibile recuperare il miglior modello stesso tramite l'attributo .best_estimator_.

Compito

Swipe to start coding

Ti viene fornito il dataset delle valutazioni di Star Wars memorizzato come DataFrame nella variabile df.

  • Inizializza param_grid come un dizionario contenente il parametro n_neighbors con i valori [3, 9, 18, 27].
  • Crea un oggetto GridSearchCV utilizzando param_grid con una validazione incrociata a 4 fold, addestralo e memorizzalo nella variabile grid_search.
  • Recupera il modello migliore da grid_search e memorizzalo nella variabile best_model.
  • Recupera il punteggio del modello migliore e memorizzalo nella variabile best_score.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 20
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

close

bookSfida: Scelta del Miglior Valore di K

Scorri per mostrare il menu

Come mostrato nei capitoli precedenti, le previsioni del modello possono variare a seconda del valore di k (il numero di vicini). Quando si costruisce un modello k-NN, è importante scegliere il valore di k che offre le migliori prestazioni.

Un approccio comune consiste nell'utilizzare la validazione incrociata per valutare le prestazioni del modello. È possibile eseguire un ciclo e calcolare i punteggi di validazione incrociata per un intervallo di valori di k, quindi selezionare quello con il punteggio più alto. Questo è il metodo più ampiamente utilizzato.

Per eseguire questa operazione, sklearn offre uno strumento pratico: la classe GridSearchCV.

Costruttore:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — oggetto modello;
  • param_grid — dizionario con i valori dei parametri da esplorare;
  • scoring — metrica utilizzata per il punteggio della validazione incrociata;
  • cv — numero di fold (5 per impostazione predefinita);

Metodi:

  • fit(X, y) — addestramento dei modelli utilizzando X, y;
  • predict(X) — previsione della classe per X;
  • score(X, y) — restituisce l'accuratezza per il set X, y;

Attributi:

  • best_estimator_ — oggetto del modello con il punteggio più alto;
  • best_score_ — punteggio del best_estimator_.

Il parametro param_grid accetta un dizionario in cui le chiavi sono i nomi dei parametri e i valori sono le liste delle opzioni da provare. Ad esempio, per testare i valori da 1 a 99 per n_neighbors, si può scrivere:

param_grid = {'n_neighbors': range(1, 100)}

Chiamando il metodo .fit(X, y) sull'oggetto GridSearchCV verrà eseguita una ricerca nella griglia dei parametri per trovare i migliori parametri e quindi ri-addestrare il modello sull'intero dataset utilizzando tali parametri ottimali.

È possibile accedere al miglior punteggio utilizzando l'attributo .best_score_ ed effettuare previsioni con il modello ottimizzato tramite il metodo .predict(). Analogamente, è possibile recuperare il miglior modello stesso tramite l'attributo .best_estimator_.

Compito

Swipe to start coding

Ti viene fornito il dataset delle valutazioni di Star Wars memorizzato come DataFrame nella variabile df.

  • Inizializza param_grid come un dizionario contenente il parametro n_neighbors con i valori [3, 9, 18, 27].
  • Crea un oggetto GridSearchCV utilizzando param_grid con una validazione incrociata a 4 fold, addestralo e memorizzalo nella variabile grid_search.
  • Recupera il modello migliore da grid_search e memorizzalo nella variabile best_model.
  • Recupera il punteggio del modello migliore e memorizzalo nella variabile best_score.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 20
single

single

some-alt