Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Automaattinen Hyperparametrien Viritys | Yhteenveto
Quizzes & Challenges
Quizzes
Challenges
/
Johdatus Neuroverkkoihin Pythonilla

bookHaaste: Automaattinen Hyperparametrien Viritys

Sen sijaan, että valitsisimme mallin hyperparametrien arvot manuaalisesti, satunnaishaku (RandomizedSearchCV) tarjoaa tehokkaamman tavan löytää optimaalinen kokoonpano. Toisin kuin ruutuhaku (GridSearchCV), joka käy järjestelmällisesti läpi kaikki mahdolliset hyperparametriyhdistelmät, satunnaishaku valitsee satunnaisen osajoukon näistä yhdistelmistä. Tämä lähestymistapa vähentää merkittävästi laskentakustannuksia ja tuottaa silti hyviä tuloksia.

Neuroverkoissa mahdollisten hyperparametriyhdistelmien määrä voi olla valtava, joten kaikkien vaihtoehtojen testaaminen on usein epäkäytännöllistä. Satunnaishaku ratkaisee tämän ongelman arpomalla ennalta määritellyn määrän hyperparametrisettejä, tasapainottaen tutkimisen ja tehokkuuden.

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: optimoitava malli (esim. MLPClassifier);
  • param_distributions: sanakirja, jossa avaimina ovat hyperparametrien nimet ja arvoina listat, joista arvot valitaan;
  • n_iter: määrittää, kuinka monta satunnaista yhdistelmää testataan. Suurempi arvo kasvattaa optimaalisen yhdistelmän löytymisen todennäköisyyttä, mutta vaatii enemmän laskentaa;
  • scoring: määrittää arviointimetriikan (esim. 'accuracy' luokittelussa).
Tehtävä

Swipe to start coding

Tavoitteena on säätää monikerroksisen perceptronin (MLP) hyperparametreja käyttämällä RandomizedSearchCV-menetelmää kirjastosta scikit-learn.

Noudata seuraavia vaiheita huolellisesti:

  1. Määrittele parametriverkko param_distributions:
  • 'hidden_layer_sizes': sisällytä kolme kokoonpanoa — (20, 20), (25, 25) ja (30, 30);
  • 'learning_rate_init': sisällytä arvot 0.02, 0.01 ja 0.005;
  • 'max_iter': sisällytä arvot 10, 30 ja 50.
  1. Alusta malli käyttämällä MLPClassifier().
  2. Käytä RandomizedSearchCV-menetelmää:
    • Käytä määriteltyä mlp-mallia estimaattorina;
    • Käytä määriteltyä param_distributions-verkkoa;
  • Aseta n_iter=4 rajoittaaksesi parametrikombinaatioiden määrää;
  • Käytä 'accuracy' arviointimetriikkana;
  • Aseta random_state=1 tulosten toistettavuuden varmistamiseksi.
  1. Sovita satunnaistettu haku koulutusdataan ja tulosta löydetyt parhaat parametrit.
  2. Kouluta paras malli koko koulutusdatalla ja arvioi sen tarkkuus sekä koulutus- että testiaineistolla.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 4

bookHaaste: Automaattinen Hyperparametrien Viritys

Pyyhkäise näyttääksesi valikon

Sen sijaan, että valitsisimme mallin hyperparametrien arvot manuaalisesti, satunnaishaku (RandomizedSearchCV) tarjoaa tehokkaamman tavan löytää optimaalinen kokoonpano. Toisin kuin ruutuhaku (GridSearchCV), joka käy järjestelmällisesti läpi kaikki mahdolliset hyperparametriyhdistelmät, satunnaishaku valitsee satunnaisen osajoukon näistä yhdistelmistä. Tämä lähestymistapa vähentää merkittävästi laskentakustannuksia ja tuottaa silti hyviä tuloksia.

Neuroverkoissa mahdollisten hyperparametriyhdistelmien määrä voi olla valtava, joten kaikkien vaihtoehtojen testaaminen on usein epäkäytännöllistä. Satunnaishaku ratkaisee tämän ongelman arpomalla ennalta määritellyn määrän hyperparametrisettejä, tasapainottaen tutkimisen ja tehokkuuden.

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: optimoitava malli (esim. MLPClassifier);
  • param_distributions: sanakirja, jossa avaimina ovat hyperparametrien nimet ja arvoina listat, joista arvot valitaan;
  • n_iter: määrittää, kuinka monta satunnaista yhdistelmää testataan. Suurempi arvo kasvattaa optimaalisen yhdistelmän löytymisen todennäköisyyttä, mutta vaatii enemmän laskentaa;
  • scoring: määrittää arviointimetriikan (esim. 'accuracy' luokittelussa).
Tehtävä

Swipe to start coding

Tavoitteena on säätää monikerroksisen perceptronin (MLP) hyperparametreja käyttämällä RandomizedSearchCV-menetelmää kirjastosta scikit-learn.

Noudata seuraavia vaiheita huolellisesti:

  1. Määrittele parametriverkko param_distributions:
  • 'hidden_layer_sizes': sisällytä kolme kokoonpanoa — (20, 20), (25, 25) ja (30, 30);
  • 'learning_rate_init': sisällytä arvot 0.02, 0.01 ja 0.005;
  • 'max_iter': sisällytä arvot 10, 30 ja 50.
  1. Alusta malli käyttämällä MLPClassifier().
  2. Käytä RandomizedSearchCV-menetelmää:
    • Käytä määriteltyä mlp-mallia estimaattorina;
    • Käytä määriteltyä param_distributions-verkkoa;
  • Aseta n_iter=4 rajoittaaksesi parametrikombinaatioiden määrää;
  • Käytä 'accuracy' arviointimetriikkana;
  • Aseta random_state=1 tulosten toistettavuuden varmistamiseksi.
  1. Sovita satunnaistettu haku koulutusdataan ja tulosta löydetyt parhaat parametrit.
  2. Kouluta paras malli koko koulutusdatalla ja arvioi sen tarkkuus sekä koulutus- että testiaineistolla.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
single

single

some-alt