RandomSearchCV i Scikit Learn
Nu ska du öva på att bygga ett RandomizedSearchCV-objekt med Scikit Learn.
Hyperparametergallret ska gälla max_depth (alla värden mellan och inklusive 5 och 25) och max_features ('auto' och 'sqrt').
Önskade inställningar för RandomizedSearchCV-objektet är:
- En
RandomForestClassifier-estimator medn_estimatorssatt till 80. - 3-faldig korsvalidering (
cv) - Använd
roc_aucför att poängsätta modellerna - Använd 4 kärnor för parallell bearbetning (
n_jobs) - Se till att den bästa modellen tränas om och att träningsresultat returneras
- Sampla bara 5 modeller för effektivitetens skull (
n_iter)
Datamängderna X_train och y_train är redan inlästa.
Kom ihåg att de valda hyperparametrarna finns i cv_results_, med en kolumn per hyperparameter. Kolumnen för hyperparametern criterion heter till exempel param_criterion.
Den här övningen är en del av kursen
Hyperparameterjustering i Python
Övningsinstruktioner
- Skapa ett hyperparametergaller enligt beskrivningen ovan.
- Skapa ett
RandomizedSearchCV-objekt enligt beskrivningen ovan. - Anpassa
RandomizedSearchCV-objektet till träningsdata. - Indexera i
cv_results_-objektet för att skriva ut de värden som modelleringsprocessen valde för båda hyperparametrarna (max_depthochmax_features).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]}
# Create a random search object
random_rf_class = RandomizedSearchCV(
estimator = ____(n_estimators=____),
param_distributions = ____, n_iter = ____,
scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )
# Fit to the training data
____.fit(X_train, y_train)
# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])