Informované metody: Genetické algoritmy

Hyperparameter Tuning in Python

Alex Scriven

Data Scientist

Lekce o genetice

 

V reálné genetické evoluci probíhá následující proces:

  1. Existuje mnoho jedinců ('potomků')
  2. Nejsilnější jedinci přežijí a spárují se
  3. Dochází ke 'křížení' při vytváření potomků
  4. U některých potomků dochází k náhodným mutacím
    • Tyto mutace někdy poskytují potomkům výhodu
  5. Návrat na (1)!
Hyperparameter Tuning in Python

Genetika ve strojovém učení

 

Stejnou myšlenku lze aplikovat na ladění hyperparametrů:

  1. Vytvoříme sadu modelů (s nastavenými hyperparametry)
  2. Vybereme nejlepší (podle zvolené skórovací funkce)
    • Tyto modely 'přežijí'
  3. Vytvoříme nové modely podobné těm nejlepším
  4. Přidáme náhodnost, aby nedošlo k uváznutí v lokálním optimu
  5. Opakujeme, dokud nejsme spokojeni!
Hyperparameter Tuning in Python

Proč to funguje dobře?

 

Jde o informované prohledávání s několika výhodami:

  • Umožňuje učit se z předchozích iterací, podobně jako bayesovské ladění hyperparametrů.
  • Navíc přináší výhodu určité náhodnosti
  • (Použitý balíček) zajišťuje mnoho zdlouhavých aspektů strojového učení
Hyperparameter Tuning in Python

Představujeme TPOT

 

Užitečnou knihovnou pro genetické ladění hyperparametrů je TPOT:

Považujte TPOT za svého asistenta pro datovou vědu. TPOT je nástroj pro automatizované strojové učení v Pythonu, který optimalizuje pipeline strojového učení pomocí genetického programování.

Pipeline zahrnují nejen model (nebo více modelů), ale pracují také s příznaky a dalšími aspekty procesu. Navíc vrátí Python kód pipeline!

Hyperparameter Tuning in Python

Komponenty TPOT

Klíčové argumenty klasifikátoru TPOT:

  • generations: Počet iterací trénování.
  • population_size: Počet modelů uchovávaných po každé iteraci.
  • offspring_size: Počet modelů vytvořených v každé iteraci.
  • mutation_rate: Podíl pipeline, na které se aplikuje náhodnost.
  • crossover_rate: Podíl pipeline křížených v každé iteraci.
  • scoring: Funkce pro hodnocení nejlepších modelů.
  • cv: Strategie křížové validace.
Hyperparameter Tuning in Python

Jednoduchý příklad

Jednoduchý příklad:

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))

Výchozí hodnoty mutation_rate a crossover_rate ponecháme beze změny – bez hlubší znalosti genetického programování je lepší je neupravovat.

Poznámka: Žádné hyperparametry specifické pro algoritmus?

Hyperparameter Tuning in Python

Pojďme si procvičit!

Hyperparameter Tuning in Python

Preparing Video For Download...