Hyperparameter Tuning in Python
Alex Scriven
Data Scientist
In genetische evolutie in de echte wereld verloopt het zo:
Hetzelfde idee kun je toepassen op hyperparametertuning:
Dit is een geïnformeerde zoekmethode met voordelen:
Een handige library voor genetische hyperparametertuning is TPOT:
Zie TPOT als je data science-assistent. TPOT is een Python AutoML-tool die ML-pipelines optimaliseert met genetic programming.
Pipelines omvatten niet alleen het model (of meerdere) maar ook feature-bewerking en andere stappen. En je krijgt de Python-code van de pipeline terug!
De belangrijkste argumenten voor een TPOT-classifier:
generations: Aantal iteraties voor training.population_size: Aantal modellen dat na elke iteratie overblijft.offspring_size: Aantal te maken modellen per iteratie.mutation_rate: Aandeel pipelines met willekeur.crossover_rate: Aandeel pipelines dat per iteratie kruist.scoring: Functie om de beste modellen te bepalen.cv: Te gebruiken cross-validatiestrategie.Een simpel voorbeeld:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
We laten mutation_rate en crossover_rate op standaardwaarden staan; die werken meestal het best zonder diepgaande kennis van genetic programming.
Opvallend: geen algoritmespecifieke hyperparameters?
Hyperparameter Tuning in Python