Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Ricerca a Griglia Cv | Modellizzazione
Introduzione al ML con Scikit-Learn

bookRicerca a Griglia Cv

Ora è il momento di migliorare le prestazioni del modello identificando gli iperparametri più adatti.

Questo processo è noto come ottimizzazione degli iperparametri. L'approccio standard consiste nel testare diversi valori di iperparametri, calcolare il punteggio di validazione incrociata per ciascuno e selezionare il valore che produce il punteggio più alto.

Questo processo può essere effettuato utilizzando la classe GridSearchCV del modulo sklearn.model_selection.

Quando si crea un oggetto GridSearchCV, è necessario fornire il modello e la griglia dei parametri (param_grid), e opzionalmente specificare la metrica di valutazione e il numero di fold. La griglia dei parametri è un dizionario di valori di iperparametri da testare. Ad esempio:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Questa configurazione valuta il modello con 1, 3, 5 e 7 vicini.

Dopo aver inizializzato GridSearchCV, si addestra con .fit(X, y).

  • Il miglior modello (punteggio di validazione incrociata più alto) è accessibile tramite .best_estimator_.
  • Il punteggio di validazione incrociata corrispondente può essere visualizzato tramite .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Il passo successivo consiste nel prendere il best_estimator_ e addestrarlo sull'intero dataset, poiché è già stato identificato come avente i parametri ottimali. Questo passaggio viene eseguito automaticamente da GridSearchCV.

Di conseguenza, l'oggetto grid_search stesso diventa un modello addestrato con i parametri ottimali. Può essere utilizzato direttamente per la previsione e la valutazione tramite i metodi .predict() e .score().

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Una volta addestrato un oggetto GridSearchCV, è possibile utilizzarlo per effettuare previsioni tramite il metodo .predict(). È corretto?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 6

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

bookRicerca a Griglia Cv

Scorri per mostrare il menu

Ora è il momento di migliorare le prestazioni del modello identificando gli iperparametri più adatti.

Questo processo è noto come ottimizzazione degli iperparametri. L'approccio standard consiste nel testare diversi valori di iperparametri, calcolare il punteggio di validazione incrociata per ciascuno e selezionare il valore che produce il punteggio più alto.

Questo processo può essere effettuato utilizzando la classe GridSearchCV del modulo sklearn.model_selection.

Quando si crea un oggetto GridSearchCV, è necessario fornire il modello e la griglia dei parametri (param_grid), e opzionalmente specificare la metrica di valutazione e il numero di fold. La griglia dei parametri è un dizionario di valori di iperparametri da testare. Ad esempio:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Questa configurazione valuta il modello con 1, 3, 5 e 7 vicini.

Dopo aver inizializzato GridSearchCV, si addestra con .fit(X, y).

  • Il miglior modello (punteggio di validazione incrociata più alto) è accessibile tramite .best_estimator_.
  • Il punteggio di validazione incrociata corrispondente può essere visualizzato tramite .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Il passo successivo consiste nel prendere il best_estimator_ e addestrarlo sull'intero dataset, poiché è già stato identificato come avente i parametri ottimali. Questo passaggio viene eseguito automaticamente da GridSearchCV.

Di conseguenza, l'oggetto grid_search stesso diventa un modello addestrato con i parametri ottimali. Può essere utilizzato direttamente per la previsione e la valutazione tramite i metodi .predict() e .score().

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Una volta addestrato un oggetto GridSearchCV, è possibile utilizzarlo per effettuare previsioni tramite il metodo .predict(). È corretto?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 6
some-alt