Aan de slagGa gratis aan de slag

GridSearch-parameters instellen

Een hyperparameter is een parameter binnen een functie. Bijvoorbeeld, max_depth of min_samples_leaf zijn hyperparameters van de functie DecisionTreeClassifier(). Hyperparameter tuning is het proces waarbij je verschillende waarden van hyperparameters test om de optimale te vinden: degene die de beste voorspellingen geeft volgens jouw doelstellingen. In sklearn kun je GridSearch gebruiken om verschillende combinaties van hyperparameters te testen. Nog beter, je kunt GridSearchCV() gebruiken om verschillende combinaties te testen en er meteen cross-validatie op uit te voeren in één functie!

In deze oefening ga je de verschillende waarden voorbereiden die je wilt testen voor max_depth en min_samples_leaf. Daarna zet je deze in een woordenboek, want dat is wat GridSearchCV() verwacht:

  • de sleutels van het woordenboek zijn de namen van de hyperparameters
  • de waarden van het woordenboek zijn de attributen (de hyperparametervaarden) die je wilt testen

In plaats van alle waarden handmatig te noteren, gebruik je de functie range(), waarmee je waarden stapsgewijs kunt genereren. Bijvoorbeeld, range(1, 10, 2) genereert een lijst met waarden van 1 inclusief tot 10 exclusief, in stappen van 2. Het eindresultaat is dus [1, 3, 5, 7, 9].

Deze oefening maakt deel uit van de cursus

HR-analytics: verloop van medewerkers voorspellen in Python

Cursus bekijken

Oefeninstructies

  • Volg het formaat in het voorbeeld hierboven en genereer waarden voor de maximale diepte van 5 tot 20 in stappen van 1
  • Doe hetzelfde voor de minimale blaadgrootte met waarden van 50 tot 450 in stappen van 50
  • Maak het woordenboek door de te proberen waarden voor max_depth en min_samples_leaf op te geven, met de respectieve waarden, met behulp van de variabelen die je zojuist hebt gemaakt

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
Code bewerken en uitvoeren