Hyperparameterjustering i Python
Alex Scriven
Data Scientist
I den biologiska evolutionen ser processen ut så här:
Samma idé kan tillämpas på hyperparameterjustering:
Detta är en informerad sökning med flera fördelar:
Ett användbart bibliotek för genetisk hyperparameterjustering är TPOT:
Se TPOT som din datavetenskapsassistent. TPOT är ett Python-verktyg för automatiserad maskininlärning som optimerar maskininlärningspipelines med genetisk programmering.
Pipelines inkluderar inte bara modellen (eller flera modeller) utan hanterar även särdrag och andra delar av processen. Dessutom returnerar verktyget Python-koden för pipelinen!
De viktigaste argumenten till en TPOT-klassificerare är:
generations: Antal iterationer för träning.population_size: Antal modeller att behålla efter varje iteration.offspring_size: Antal modeller att skapa i varje iteration.mutation_rate: Andelen pipelines som slumpmässighet tillämpas på.crossover_rate: Andelen pipelines som korsas varje iteration.scoring: Funktionen för att avgöra vilka modeller som är bäst.cv: Korsvalideringsstrategi att använda.Ett enkelt exempel:
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))
Vi behåller standardvärdena för mutation_rate och crossover_rate – utan djupare kunskap om genetisk programmering är standardvärdena att föredra.
Observera: Inga algoritmspecifika hyperparametrar?
Hyperparameterjustering i Python