Konfigurera parametrar för GridSearch
En hyperparameter är en parameter inuti en funktion. Till exempel är max_depth och min_samples_leaf hyperparametrar i funktionen DecisionTreeClassifier(). Hyperparameterjustering innebär att man testar olika värden för hyperparametrarna för att hitta de optimala – de som ger bäst förutsägelser utifrån dina mål. I sklearn kan du använda GridSearch för att testa olika kombinationer av hyperparametrar. Ännu bättre: med GridSearchCV() kan du testa kombinationer och köra korsvalidering i ett och samma steg!
I den här övningen ska du förbereda de värden du vill testa för max_depth och min_samples_leaf. Sedan lägger du in dem i en ordbok, eftersom det är det format som GridSearchCV() kräver:
- ordbokens nycklar är hyperparametrarnas namn
- ordbokens värden är de attribut (hyperparametervärden) du vill testa
Istället för att skriva alla värden manuellt använder du funktionen range(), som genererar värden stegvis. Till exempel genererar range(1, 10, 2) en lista med värden från och med 1 till och med 9 (10 inte inkluderat), i steg om 2. Resultatet blir alltså [1, 3, 5, 7, 9].
Den här övningen är en del av kursen
HR-analys: Förutsäg personalomsättning i Python
Övningsinstruktioner
- Följ formatet i exemplet ovan och generera värden för det maximala djupet från 5 till 20 i steg om 1
- Gör samma sak för den minsta urvalsstorleken med värden från 50 till 450 i steg om 50
- Skapa ordboken genom att ange de värden du vill testa för
max_depthrespektivemin_samples_leaf, med hjälp av variablerna du just skapade
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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=____)