IniziaInizia gratis

Sintonizzazione degli iperparametri con RandomizedSearchCV

Come hai visto, GridSearchCV può essere costoso dal punto di vista computazionale, soprattutto se la ricerca avviene su un ampio spazio di iperparametri. In questo caso, puoi usare RandomizedSearchCV, che testa un numero fisso di impostazioni di iperparametri da distribuzioni di probabilità specificate.

I set di allenamento e di test di diabetes_df sono stati precaricati come X_train. X_test, y_train, e y_test, dove l'obiettivo è "diabetes". È stato creato un modello di regressione logistica e memorizzato come logreg, così come una variabile KFold memorizzata come kf.

Definisci una serie di iperparametri e utilizza RandomizedSearchCV, importato da sklearn.model_selection, per cercare gli iperparametri ottimali tra queste opzioni.

Questo esercizio fa parte del corso

Apprendimento supervisionato con scikit-learn

Visualizza il corso

Istruzioni dell'esercizio

  • Crea params, aggiungendo "l1" e "l2" come valori penalty, impostando C su un intervallo di valori float 50 tra 0.1 e 1.0, e class_weight su "balanced" o su un dizionario contenente 0:0.8, 1:0.2.
  • Crea l'oggetto Randomized Search CV, passandogli il modello e i parametri e impostando cv come kf.
  • Adatta logreg_cv ai dati di formazione.
  • Stampa i parametri migliori del modello e il punteggio di accuratezza.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create the parameter space
params = {"penalty": ["____", "____"],
         "tol": np.linspace(0.0001, 1.0, 50),
         "C": np.linspace(____, ____, ____),
         "class_weight": ["____", {0:____, 1:____}]}

# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)

# Fit the data to the model
logreg_cv.____(____, ____)

# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))
Modifica ed esegui il codice