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 med Python

bookUtfordring: Automatisk Hyperparameterjustering

I stedet for å manuelt velge spesifikke verdier for modellens hyperparametre, gir randomisert søk (RandomizedSearchCV) en mer effektiv måte å finne en optimal konfigurasjon på. I motsetning til grid search (GridSearchCV), som systematisk evaluerer alle mulige kombinasjoner av hyperparametre, 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 hyperparametre kan være enormt, er det ofte upraktisk å teste alle alternativer. Randomisert søk omgår dette problemet ved å tilfeldig trekke et definert antall hyperparametere, 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 hvor nøklene er navn på hyperparametre og verdiene er lister det skal trekkes fra;
  • n_iter: angir hvor mange tilfeldige kombinasjoner som skal testes. En høyere verdi øker sjansen 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 perceptron (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 med 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

Suggested prompts:

Can you explain the difference between RandomizedSearchCV and GridSearchCV in more detail?

How do I choose the right number for n_iter in RandomizedSearchCV?

What types of problems is RandomizedSearchCV best suited for?

close

Awesome!

Completion rate improved to 4

bookUtfordring: Automatisk Hyperparameterjustering

Sveip for å vise menyen

I stedet for å manuelt velge spesifikke verdier for modellens hyperparametre, gir randomisert søk (RandomizedSearchCV) en mer effektiv måte å finne en optimal konfigurasjon på. I motsetning til grid search (GridSearchCV), som systematisk evaluerer alle mulige kombinasjoner av hyperparametre, 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 hyperparametre kan være enormt, er det ofte upraktisk å teste alle alternativer. Randomisert søk omgår dette problemet ved å tilfeldig trekke et definert antall hyperparametere, 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 hvor nøklene er navn på hyperparametre og verdiene er lister det skal trekkes fra;
  • n_iter: angir hvor mange tilfeldige kombinasjoner som skal testes. En høyere verdi øker sjansen 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 perceptron (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 med 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