Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Automatisk Hyperparameterjustering | Konklusjon
Introduksjon til nevrale nettverk

bookUtfordring: Automatisk Hyperparameterjustering

I stedet for å manuelt velge spesifikke verdier for modellens hyperparametere, gir randomisert søk (RandomizedSearchCV) en mer effektiv metode for å finne en optimal konfigurasjon. I motsetning til rutenettsøk (GridSearchCV), som systematisk evaluerer alle mulige kombinasjoner av hyperparametere, velger randomisert søk et tilfeldig utvalg av disse kombinasjonene. Denne tilnærmingen reduserer beregningskostnadene betydelig, samtidig som den gir gode resultater.

For nevrale nettverk, hvor antallet mulige kombinasjoner av hyperparametere kan være enormt, er det ofte upraktisk å teste alle alternativer. Randomisert søk omgår dette problemet ved å tilfeldig trekke et definert antall hyperparametersett, og balanserer dermed utforskning og effektivitet.

RandomizedSearchCV(
    estimator=model, 
    param_distributions=randomized_parameters, 
    n_iter=number_of_models_to_test,  # Number of random combinations to evaluate
    scoring='accuracy',  # Evaluation metric
    random_state=42,  # Ensures reproducibility
)
  • estimator: modellen som skal optimaliseres (f.eks. MLPClassifier);
  • param_distributions: en ordbok der nøklene er navn på hyperparametere og verdiene er lister det skal trekkes fra;
  • n_iter: angir hvor mange tilfeldige kombinasjoner som skal testes. En høyere verdi øker sannsynligheten for å finne en optimal kombinasjon, men krever mer beregning;
  • scoring: definerer evalueringsmetrikken (f.eks. 'accuracy' for klassifisering).
Oppgave

Swipe to start coding

Målet ditt er å justere hyperparametrene til et multilags perseptron (MLP) ved å bruke RandomizedSearchCV-metoden fra scikit-learn.

Følg disse trinnene nøye:

  1. Definer parametergrid param_distributions:
  • 'hidden_layer_sizes': inkluder tre konfigurasjoner — (20, 20), (25, 25) og (30, 30);
  • 'learning_rate_init': inkluder verdiene 0.02, 0.01 og 0.005;
  • 'max_iter': inkluder verdiene 10, 30 og 50.
  1. Initialiser modellen ved å bruke MLPClassifier().
  2. Bruk RandomizedSearchCV:
    • Bruk den definerte mlp-modellen som estimator;
    • Bruk det definerte param_distributions-gridet;
  • Sett n_iter=4 for å begrense antall parameterkombinasjoner;
  • Bruk 'accuracy' som evalueringsmetode;
  • Sett random_state=1 for reproduserbarhet.
  1. Tilpass det tilfeldige søket på treningsdataene og skriv ut de beste parametrene som ble funnet.
  2. Tren den beste modellen på hele treningsdatasettet og evaluer nøyaktigheten på både trenings- og testsettet.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

Awesome!

Completion rate improved to 4

bookUtfordring: Automatisk Hyperparameterjustering

Sveip for å vise menyen

I stedet for å manuelt velge spesifikke verdier for modellens hyperparametere, gir randomisert søk (RandomizedSearchCV) en mer effektiv metode for å finne en optimal konfigurasjon. I motsetning til rutenettsøk (GridSearchCV), som systematisk evaluerer alle mulige kombinasjoner av hyperparametere, velger randomisert søk et tilfeldig utvalg av disse kombinasjonene. Denne tilnærmingen reduserer beregningskostnadene betydelig, samtidig som den gir gode resultater.

For nevrale nettverk, hvor antallet mulige kombinasjoner av hyperparametere kan være enormt, er det ofte upraktisk å teste alle alternativer. Randomisert søk omgår dette problemet ved å tilfeldig trekke et definert antall hyperparametersett, og balanserer dermed utforskning og effektivitet.

RandomizedSearchCV(
    estimator=model, 
    param_distributions=randomized_parameters, 
    n_iter=number_of_models_to_test,  # Number of random combinations to evaluate
    scoring='accuracy',  # Evaluation metric
    random_state=42,  # Ensures reproducibility
)
  • estimator: modellen som skal optimaliseres (f.eks. MLPClassifier);
  • param_distributions: en ordbok der nøklene er navn på hyperparametere og verdiene er lister det skal trekkes fra;
  • n_iter: angir hvor mange tilfeldige kombinasjoner som skal testes. En høyere verdi øker sannsynligheten for å finne en optimal kombinasjon, men krever mer beregning;
  • scoring: definerer evalueringsmetrikken (f.eks. 'accuracy' for klassifisering).
Oppgave

Swipe to start coding

Målet ditt er å justere hyperparametrene til et multilags perseptron (MLP) ved å bruke RandomizedSearchCV-metoden fra scikit-learn.

Følg disse trinnene nøye:

  1. Definer parametergrid param_distributions:
  • 'hidden_layer_sizes': inkluder tre konfigurasjoner — (20, 20), (25, 25) og (30, 30);
  • 'learning_rate_init': inkluder verdiene 0.02, 0.01 og 0.005;
  • 'max_iter': inkluder verdiene 10, 30 og 50.
  1. Initialiser modellen ved å bruke MLPClassifier().
  2. Bruk RandomizedSearchCV:
    • Bruk den definerte mlp-modellen som estimator;
    • Bruk det definerte param_distributions-gridet;
  • Sett n_iter=4 for å begrense antall parameterkombinasjoner;
  • Bruk 'accuracy' som evalueringsmetode;
  • Sett random_state=1 for reproduserbarhet.
  1. Tilpass det tilfeldige søket på treningsdataene og skriv ut de beste parametrene som ble funnet.
  2. Tren den beste modellen på hele treningsdatasettet og evaluer nøyaktigheten på både trenings- og testsettet.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
single

single

some-alt