Hyperparameterjustering med RandomizedSearchCV
Som du sett kan GridSearchCV vara beräkningstungt, särskilt när du söker i ett stort hyperparameterutrymme. I sådana fall kan du använda RandomizedSearchCV, som testar ett fast antal hyperparameterkombinationer från angivna sannolikhetsfördelningar.
Tränings- och testmängder från diabetes_df har förberetts åt dig som X_train, X_test, y_train och y_test, där målet är "diabetes". En logistisk regressionsmodell har skapats och lagrats som logreg, samt en KFold-variabel lagrad som kf.
Du ska definiera ett intervall av hyperparametrar och använda RandomizedSearchCV, som har importerats från sklearn.model_selection, för att hitta optimala hyperparametrar bland dessa alternativ.
Den här övningen är en del av kursen
Övervakad inlärning med scikit-learn
Övningsinstruktioner
- Skapa
paramsoch lägg till"l1"och"l2"sompenalty-värden, angeCsom ett intervall av50flyttalsvärden mellan0.1och1.0, och sättclass_weighttill antingen"balanced"eller ett lexikon med0:0.8, 1:0.2. - Skapa objektet för Randomized Search CV och skicka in modellen och parametrarna, och sätt
cvtillkf. - Anpassa
logreg_cvtill träningsdata. - Skriv ut modellens bästa parametrar och noggrannhetspoäng.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____.____))