Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele GridSearchCV:n Puute | Mallintaminen
Johdatus koneoppimiseen Pythonilla

bookGridSearchCV:n Puute

Ennen kuin käytät GridSearchCV:tä, huomioi, että KNeighborsClassifier-luokalla on enemmän hyperparametreja kuin pelkkä n_neighbors. Kaksi tärkeää ovat weights ja p.

Weights

Oletuksena luokittelija käyttää weights='uniform', jolloin kaikki k naapurit äänestävät tasavertaisesti. Asetus weights='distance' antaa läheisemmille naapureille enemmän vaikutusvaltaa, mikä usein parantaa ennusteita, kun läheiset pisteet ovat merkityksellisempiä.

P

Parametri p määrittää etäisyysmetriikan:

  • p=1: Manhattan-etäisyys;
  • p=2: Euklidinen etäisyys.

p-parametri voi olla mikä tahansa positiivinen kokonaisluku. Etäisyyksiä on monia erilaisia, mutta niitä on vaikeampi havainnollistaa kuin tapauksia p=1 tai p=2.

Note
Huomio

Älä huoli, jos weights- tai p-parametrien yksityiskohdat ovat epäselviä. Ne esitellään vain osoittamaan, että mallin ennusteisiin voi vaikuttaa useampi kuin yksi hyperparametri. Käsittele niitä esimerkkeinä hyperparametreista, joita voidaan säätää.

Aiemmin säädettiin vain n_neighbors-parametria. Kaikkien kolmen hyperparametrin tutkimiseen käytetään:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV kokeilee kaikkia mahdollisia yhdistelmiä löytääkseen parhaan, joten se testaa kaikki seuraavat:

Suurempi ruudukko kuten:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

luo 100 yhdistelmää. Kun käytetään 5-kertaista ristiinvalidointia, malli opetetaan 500 kertaa. Tämä on sopivaa pienille aineistoille, mutta suuremmilla aineistoilla prosessi hidastuu liikaa.

Laskenta-ajan vähentämiseksi RandomizedSearchCV testaa vain satunnaisen osajoukon yhdistelmistä, ja löytää usein hyviä tuloksia paljon nopeammin kuin täydellinen ruutuhaku.

question mark

GridSearchCV-n pääongelma on, että se kokeilee kaikki mahdolliset yhdistelmät (määriteltynä param_grid-parametrissa), mikä voi viedä paljon aikaa. Onko tämä väite oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain how RandomizedSearchCV selects the combinations to test?

What are some best practices for choosing the range of hyperparameters?

How do I interpret the results from GridSearchCV or RandomizedSearchCV?

Awesome!

Completion rate improved to 3.13

bookGridSearchCV:n Puute

Pyyhkäise näyttääksesi valikon

Ennen kuin käytät GridSearchCV:tä, huomioi, että KNeighborsClassifier-luokalla on enemmän hyperparametreja kuin pelkkä n_neighbors. Kaksi tärkeää ovat weights ja p.

Weights

Oletuksena luokittelija käyttää weights='uniform', jolloin kaikki k naapurit äänestävät tasavertaisesti. Asetus weights='distance' antaa läheisemmille naapureille enemmän vaikutusvaltaa, mikä usein parantaa ennusteita, kun läheiset pisteet ovat merkityksellisempiä.

P

Parametri p määrittää etäisyysmetriikan:

  • p=1: Manhattan-etäisyys;
  • p=2: Euklidinen etäisyys.

p-parametri voi olla mikä tahansa positiivinen kokonaisluku. Etäisyyksiä on monia erilaisia, mutta niitä on vaikeampi havainnollistaa kuin tapauksia p=1 tai p=2.

Note
Huomio

Älä huoli, jos weights- tai p-parametrien yksityiskohdat ovat epäselviä. Ne esitellään vain osoittamaan, että mallin ennusteisiin voi vaikuttaa useampi kuin yksi hyperparametri. Käsittele niitä esimerkkeinä hyperparametreista, joita voidaan säätää.

Aiemmin säädettiin vain n_neighbors-parametria. Kaikkien kolmen hyperparametrin tutkimiseen käytetään:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV kokeilee kaikkia mahdollisia yhdistelmiä löytääkseen parhaan, joten se testaa kaikki seuraavat:

Suurempi ruudukko kuten:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

luo 100 yhdistelmää. Kun käytetään 5-kertaista ristiinvalidointia, malli opetetaan 500 kertaa. Tämä on sopivaa pienille aineistoille, mutta suuremmilla aineistoilla prosessi hidastuu liikaa.

Laskenta-ajan vähentämiseksi RandomizedSearchCV testaa vain satunnaisen osajoukon yhdistelmistä, ja löytää usein hyviä tuloksia paljon nopeammin kuin täydellinen ruutuhaku.

question mark

GridSearchCV-n pääongelma on, että se kokeilee kaikki mahdolliset yhdistelmät (määriteltynä param_grid-parametrissa), mikä voi viedä paljon aikaa. Onko tämä väite oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7
some-alt