Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Automatisk Hyperparametertuning | Konklusion
Introduktion til neurale netværk

bookUdfordring: Automatisk Hyperparametertuning

I stedet for manuelt at vælge specifikke værdier for modellens hyperparametre, tilbyder randomiseret søgning (RandomizedSearchCV) en mere effektiv metode til at finde en optimal konfiguration. I modsætning til grid search (GridSearchCV), som systematisk evaluerer alle mulige kombinationer af hyperparametre, vælger randomiseret søgning et tilfældigt delmængde af disse kombinationer. Denne tilgang reducerer beregningsomkostningerne betydeligt, samtidig med at der opnås gode resultater.

For neurale netværk, hvor antallet af mulige hyperparameter-kombinationer kan være enormt, er det ofte upraktisk at teste alle muligheder udtømmende. Randomiseret søgning omgår dette problem ved at tilfældigt udvælge et defineret antal sæt af hyperparametre, hvilket balancerer udforskning 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 der skal optimeres (f.eks. MLPClassifier);
  • param_distributions: en ordbog hvor nøglerne er navne på hyperparametre og værdierne er lister, der udvælges fra;
  • n_iter: angiver hvor mange tilfældige kombinationer der skal testes. En højere værdi øger sandsynligheden for at finde en optimal kombination, men kræver mere beregning;
  • scoring: definerer evalueringsmetrikken (f.eks. 'accuracy' for klassifikation).
Opgave

Swipe to start coding

Dit mål er at justere hyperparametrene for en multilayer perceptron (MLP) ved hjælp af RandomizedSearchCV-metoden fra scikit-learn.

Følg disse trin nøje:

  1. Definér parametergrid param_distributions:
  • 'hidden_layer_sizes': inkluder tre konfigurationer — (20, 20), (25, 25) og (30, 30);
  • 'learning_rate_init': inkluder værdierne 0.02, 0.01 og 0.005;
  • 'max_iter': inkluder værdierne 10, 30 og 50.
  1. Initialisér modellen med MLPClassifier().
  2. Anvend RandomizedSearchCV:
    • Brug den definerede mlp-model som estimator;
    • Brug det definerede param_distributions-grid;
  • Sæt n_iter=4 for at begrænse antallet af parameterkombinationer;
  • Brug 'accuracy' som evalueringsmetrik;
  • Sæt random_state=1 for reproducerbarhed.
  1. Tilpas det randomiserede søgning på træningsdataene og udskriv de bedste fundne parametre.
  2. Træn den bedste model på hele træningsdatasættet og evaluer dens nøjagtighed på både trænings- og test-sættet.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 4

bookUdfordring: Automatisk Hyperparametertuning

Stryg for at vise menuen

I stedet for manuelt at vælge specifikke værdier for modellens hyperparametre, tilbyder randomiseret søgning (RandomizedSearchCV) en mere effektiv metode til at finde en optimal konfiguration. I modsætning til grid search (GridSearchCV), som systematisk evaluerer alle mulige kombinationer af hyperparametre, vælger randomiseret søgning et tilfældigt delmængde af disse kombinationer. Denne tilgang reducerer beregningsomkostningerne betydeligt, samtidig med at der opnås gode resultater.

For neurale netværk, hvor antallet af mulige hyperparameter-kombinationer kan være enormt, er det ofte upraktisk at teste alle muligheder udtømmende. Randomiseret søgning omgår dette problem ved at tilfældigt udvælge et defineret antal sæt af hyperparametre, hvilket balancerer udforskning 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 der skal optimeres (f.eks. MLPClassifier);
  • param_distributions: en ordbog hvor nøglerne er navne på hyperparametre og værdierne er lister, der udvælges fra;
  • n_iter: angiver hvor mange tilfældige kombinationer der skal testes. En højere værdi øger sandsynligheden for at finde en optimal kombination, men kræver mere beregning;
  • scoring: definerer evalueringsmetrikken (f.eks. 'accuracy' for klassifikation).
Opgave

Swipe to start coding

Dit mål er at justere hyperparametrene for en multilayer perceptron (MLP) ved hjælp af RandomizedSearchCV-metoden fra scikit-learn.

Følg disse trin nøje:

  1. Definér parametergrid param_distributions:
  • 'hidden_layer_sizes': inkluder tre konfigurationer — (20, 20), (25, 25) og (30, 30);
  • 'learning_rate_init': inkluder værdierne 0.02, 0.01 og 0.005;
  • 'max_iter': inkluder værdierne 10, 30 og 50.
  1. Initialisér modellen med MLPClassifier().
  2. Anvend RandomizedSearchCV:
    • Brug den definerede mlp-model som estimator;
    • Brug det definerede param_distributions-grid;
  • Sæt n_iter=4 for at begrænse antallet af parameterkombinationer;
  • Brug 'accuracy' som evalueringsmetrik;
  • Sæt random_state=1 for reproducerbarhed.
  1. Tilpas det randomiserede søgning på træningsdataene og udskriv de bedste fundne parametre.
  2. Træn den bedste model på hele træningsdatasættet og evaluer dens nøjagtighed på både trænings- og test-sættet.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
single

single

some-alt