Randomized search
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
In het bovenstaande codeblok uit de vorige oefening heb je misschien gemerkt dat de eerste regel nauwelijks tijd kostte, terwijl de aanroep van .fit() enkele seconden duurde.
Dat komt omdat .fit() de grid search daadwerkelijk uitvoert, en in ons geval was het een raster met veel verschillende combinaties. Naarmate het hyperparameterraster groter wordt, wordt grid search trager. Om dit op te lossen, kunnen we in plaats van elke combinatie te proberen, willekeurig door het raster springen en verschillende combinaties testen. Er is een kleine kans dat we de beste combinatie missen, maar we besparen veel tijd, of we kunnen in dezelfde tijd meer hyperparameters afstellen.
In scikit-learn kan dat met RandomizedSearchCV. De API is hetzelfde als bij GridSearchCV, behalve dat je een parameter_distributie moet opgeven waaruit wordt gesampled in plaats van specifieke hyperparameterniveaus. Laten we het nu proberen! De parameterdistributie is al voor je klaargezet, samen met een random forest-classifier genaamd clf.
Deze oefening maakt deel uit van de cursus
Marketinganalyse: klantverloop voorspellen in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Import RandomizedSearchCV