Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Automatisk Hyperparameterjustering | Slutsats
Introduktion till neurala nätverk

bookUtmaning: Automatisk Hyperparameterjustering

Istället för att manuellt välja specifika värden för modellens hyperparametrar erbjuder randomiserad sökning (RandomizedSearchCV) ett mer effektivt sätt att hitta en optimal konfiguration. Till skillnad från rutnätsökning (GridSearchCV), som systematiskt utvärderar alla möjliga kombinationer av hyperparametrar, väljer randomiserad sökning en slumpmässig delmängd av dessa kombinationer. Detta tillvägagångssätt minskar beräkningskostnaden avsevärt samtidigt som det ger goda resultat.

För neurala nätverk, där antalet möjliga hyperparameterkombinationer kan vara enormt, är det ofta opraktiskt att testa varje alternativ uttömmande. Randomiserad sökning kringgår detta problem genom att slumpmässigt välja ett definierat antal hyperparameterset, vilket balanserar utforskning och 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 ska optimeras (t.ex. MLPClassifier);
  • param_distributions: en ordbok där nycklarna är hyperparameternamn och värdena är listor att slumpmässigt välja från;
  • n_iter: anger hur många slumpmässiga kombinationer som ska testas. Ett högre värde ökar chansen att hitta en optimal kombination men kräver mer beräkning;
  • scoring: definierar utvärderingsmåttet (t.ex. 'accuracy' för klassificering).
Uppgift

Swipe to start coding

Målet är att justera hyperparametrarna för en multilayer perceptron (MLP) med hjälp av metoden RandomizedSearchCV från scikit-learn.

Följ dessa steg noggrant:

  1. Definiera parametergriden param_distributions:
  • 'hidden_layer_sizes': inkludera tre konfigurationer — (20, 20), (25, 25) och (30, 30);
  • 'learning_rate_init': inkludera värdena 0.02, 0.01 och 0.005;
  • 'max_iter': inkludera värdena 10, 30 och 50.
  1. Initiera modellen med MLPClassifier().
  2. Använd RandomizedSearchCV:
    • Använd den definierade mlp-modellen som estimator;
  • Använd den definierade griden param_distributions;
  • Sätt n_iter=4 för att begränsa antalet parameterkombinationer;
  • Använd 'accuracy' som utvärderingsmetrik;
  • Sätt random_state=1 för reproducerbarhet.
  1. Träna den slumpmässiga sökningen på träningsdatan och skriv ut de bästa parametrarna som hittats.
  2. Träna den bästa modellen på hela träningsdatan och utvärdera dess noggrannhet på både tränings- och testmängden.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookUtmaning: Automatisk Hyperparameterjustering

Svep för att visa menyn

Istället för att manuellt välja specifika värden för modellens hyperparametrar erbjuder randomiserad sökning (RandomizedSearchCV) ett mer effektivt sätt att hitta en optimal konfiguration. Till skillnad från rutnätsökning (GridSearchCV), som systematiskt utvärderar alla möjliga kombinationer av hyperparametrar, väljer randomiserad sökning en slumpmässig delmängd av dessa kombinationer. Detta tillvägagångssätt minskar beräkningskostnaden avsevärt samtidigt som det ger goda resultat.

För neurala nätverk, där antalet möjliga hyperparameterkombinationer kan vara enormt, är det ofta opraktiskt att testa varje alternativ uttömmande. Randomiserad sökning kringgår detta problem genom att slumpmässigt välja ett definierat antal hyperparameterset, vilket balanserar utforskning och 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 ska optimeras (t.ex. MLPClassifier);
  • param_distributions: en ordbok där nycklarna är hyperparameternamn och värdena är listor att slumpmässigt välja från;
  • n_iter: anger hur många slumpmässiga kombinationer som ska testas. Ett högre värde ökar chansen att hitta en optimal kombination men kräver mer beräkning;
  • scoring: definierar utvärderingsmåttet (t.ex. 'accuracy' för klassificering).
Uppgift

Swipe to start coding

Målet är att justera hyperparametrarna för en multilayer perceptron (MLP) med hjälp av metoden RandomizedSearchCV från scikit-learn.

Följ dessa steg noggrant:

  1. Definiera parametergriden param_distributions:
  • 'hidden_layer_sizes': inkludera tre konfigurationer — (20, 20), (25, 25) och (30, 30);
  • 'learning_rate_init': inkludera värdena 0.02, 0.01 och 0.005;
  • 'max_iter': inkludera värdena 10, 30 och 50.
  1. Initiera modellen med MLPClassifier().
  2. Använd RandomizedSearchCV:
    • Använd den definierade mlp-modellen som estimator;
  • Använd den definierade griden param_distributions;
  • Sätt n_iter=4 för att begränsa antalet parameterkombinationer;
  • Använd 'accuracy' som utvärderingsmetrik;
  • Sätt random_state=1 för reproducerbarhet.
  1. Träna den slumpmässiga sökningen på träningsdatan och skriv ut de bästa parametrarna som hittats.
  2. Träna den bästa modellen på hela träningsdatan och utvärdera dess noggrannhet på både tränings- och testmängden.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
single

single

some-alt