Căutare informată: De la grosier la fin

Ajustarea hiperparametrilor în Python

Alex Scriven

Data Scientist

Căutare informată vs. neinformată

 

Până acum, am folosit exclusiv căutarea neinformată:

Căutare neinformată: Fiecare iterație de reglare a hiperparametrilor nu învață din iterațiile anterioare.

Aceasta ne permite să paralelizăm procesul. Dar nu sună foarte eficient?

Ajustarea hiperparametrilor în Python

Informat vs. neinformat

Procesul de până acum:

hartă proces neinformat

O abordare alternativă:

hartă proces informat

Ajustarea hiperparametrilor în Python

Reglare grosieră la fină

O metodologie de bază pentru căutarea informată:

Începeți cu o abordare aleatorie, grosieră, și rafinați iterativ căutarea.

Procesul este:

  1. Căutare aleatorie
  2. Identificarea zonelor promițătoare
  3. Căutare în grilă în zona restrânsă
  4. Continuați până la obținerea scorului optim

Puteti înlocui pasul (3) cu căutări aleatorii suplimentare înainte de căutarea în grilă

Ajustarea hiperparametrilor în Python

De ce reglare grosieră la fină?

Reglarea grosieră la fină prezintă câteva avantaje:

  • Combină avantajele căutării în grilă și aleatorie.
    • Căutare largă la început
    • Căutare mai profundă odată ce știți unde se află o zonă bună
  • Utilizarea eficientă a timpului și resurselor de calcul permite iterații mai rapide

Nu are rost să pierdeți timp pe spații de căutare nepromiţătoare!

Notă: Aceasta nu este informată pe un singur model, ci pe loturi

Ajustarea hiperparametrilor în Python

Aplicarea abordării grosier la fin

Exemplu cu următoarele intervale de hiperparametri:

  • max_depth_list între 1 și 65
  • min_sample_list între 3 și 17
  • learn_rate_list 150 valori între 0.01 și 150

Câte modele posibile avem?

combinations_list = [list(x) for x in product(max_depth_list, min_sample_list, learn_rate_list)]
print(len(combinations_list))
134400
Ajustarea hiperparametrilor în Python

Vizualizarea abordării grosier la fin

Efectuăm o căutare aleatorie pe 500 de combinații.

Reprezentăm grafic scorurile de acuratețe:

grafic de densitate a acurateței modelelor

Care au fost modelele bune?

Ajustarea hiperparametrilor în Python

Vizualizarea abordării grosier la fin

Rezultate de top:

max_depth min_samples_leaf learn_rate accuracy
10 7 0.01 96
19 7 0.023355705 96
30 6 1.038389262 93
27 7 1.11852349 91
16 7 0.597651007 91
Ajustarea hiperparametrilor în Python

Vizualizarea abordării grosier la fin

Vizualizăm valorile max_depth față de scorul de acuratețe:

grafic dispersie max depth vs scor acuratețe

Ajustarea hiperparametrilor în Python

Vizualizarea abordării grosier la fin

min_samples_leaf mai bun sub 8

grafic dispersie min samples leaf vs scor acuratețe

learn_rate mai slab peste 1.3

grafic dispersie learn rate vs scor acuratețe

Ajustarea hiperparametrilor în Python

Pașii următori

Ce știm după prima iterație:

  • max_depth între 8 și 30
  • learn_rate sub 1.3
  • min_samples_leaf probabil sub 8

Următorul pas? O nouă căutare aleatorie sau în grilă cu aceste informații!

Notă: Aceasta a fost doar o analiză bivariată. Puteți explora mai mulți hiperparametri (3, 4 sau mai mulți!) pe un singur grafic, dar depășește scopul acestui curs.

Ajustarea hiperparametrilor în Python

Să exersăm!

Ajustarea hiperparametrilor în Python

Preparing Video For Download...