Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Gridsearchcv:n Puute | Mallintaminen
Koneoppimisen Perusteet Scikit-learnilla

bookGridsearchcv:n Puute

Ennen kuin tutustutaan GridSearchCV:hen, on tärkeää huomata, että KNeighborsClassifier-luokalla on useita hyperparametreja n_neighbors-parametrin lisäksi. Kaksi näistä ovat: weights ja p.

Weights

KNeighborsClassifier tekee ennusteen etsimällä k lähintä naapuria ja määrittämällä yleisimmän luokan niiden joukosta, riippumatta siitä, kuinka lähellä kukin naapuri on.

Vaihtoehtoisesti naapurit voidaan painottaa niiden etäisyyden perusteella, jolloin läheisemmillä pisteillä on suurempi vaikutus. Tämä toteutetaan asettamalla weights='distance'.

Oletuksena luokittelija käyttää asetusta weights='uniform', jolloin kaikki naapurit vaikuttavat yhtä paljon.

P

p-hyperparametri määrittää, miten etäisyydet lasketaan:

  • p=1: Manhattan-etäisyys (koordinaattien itseisarvoerojen summa);
  • p=2: Euklidinen etäisyys (suora etäisyys, tuttu geometriasta).

p-parametri voi saada minkä tahansa positiivisen kokonaisluvun arvon. 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ää.

Edellisessä luvussa GridSearchCV-menetelmää käytettiin säätämään vain n_neighbors-parametria. Parhaan yhdistelmän löytämiseksi n_neighbors-, weights- ja p-parametrien välillä voidaan määritellä param_grid seuraavasti:

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:

Tämä kasvattaa merkittävästi hakutilaa. Esimerkiksi:

param_grid = {
    'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

Kun hyperparametriyhdistelmiä on 100 ja käytössä on 5-kertainen ristiinvalidointi, malli opetetaan ja arvioidaan 500 kertaa.

Pienillä aineistoilla tämä on hallittavissa, mutta suuremmilla aineistoilla ja monimutkaisemmilla malleilla prosessi hidastuu hyvin paljon.

Tällaisissa tapauksissa käytetään usein RandomizedSearchCV-menetelmää. Se tutkii vain osan kaikista mahdollisista yhdistelmistä, mikä vähentää laskenta-aikaa merkittävästi ja tuottaa silti hyviä tuloksia.

question mark

GridSearchCV:n pääasiallinen ongelma on, että se kokeilee kaikki mahdolliset yhdistelmät (määriteltyinä param_grid:ssä), 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 works compared to GridSearchCV?

What are some best practices for choosing hyperparameter ranges?

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 tutustutaan GridSearchCV:hen, on tärkeää huomata, että KNeighborsClassifier-luokalla on useita hyperparametreja n_neighbors-parametrin lisäksi. Kaksi näistä ovat: weights ja p.

Weights

KNeighborsClassifier tekee ennusteen etsimällä k lähintä naapuria ja määrittämällä yleisimmän luokan niiden joukosta, riippumatta siitä, kuinka lähellä kukin naapuri on.

Vaihtoehtoisesti naapurit voidaan painottaa niiden etäisyyden perusteella, jolloin läheisemmillä pisteillä on suurempi vaikutus. Tämä toteutetaan asettamalla weights='distance'.

Oletuksena luokittelija käyttää asetusta weights='uniform', jolloin kaikki naapurit vaikuttavat yhtä paljon.

P

p-hyperparametri määrittää, miten etäisyydet lasketaan:

  • p=1: Manhattan-etäisyys (koordinaattien itseisarvoerojen summa);
  • p=2: Euklidinen etäisyys (suora etäisyys, tuttu geometriasta).

p-parametri voi saada minkä tahansa positiivisen kokonaisluvun arvon. 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ää.

Edellisessä luvussa GridSearchCV-menetelmää käytettiin säätämään vain n_neighbors-parametria. Parhaan yhdistelmän löytämiseksi n_neighbors-, weights- ja p-parametrien välillä voidaan määritellä param_grid seuraavasti:

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:

Tämä kasvattaa merkittävästi hakutilaa. Esimerkiksi:

param_grid = {
    'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

Kun hyperparametriyhdistelmiä on 100 ja käytössä on 5-kertainen ristiinvalidointi, malli opetetaan ja arvioidaan 500 kertaa.

Pienillä aineistoilla tämä on hallittavissa, mutta suuremmilla aineistoilla ja monimutkaisemmilla malleilla prosessi hidastuu hyvin paljon.

Tällaisissa tapauksissa käytetään usein RandomizedSearchCV-menetelmää. Se tutkii vain osan kaikista mahdollisista yhdistelmistä, mikä vähentää laskenta-aikaa merkittävästi ja tuottaa silti hyviä tuloksia.

question mark

GridSearchCV:n pääasiallinen ongelma on, että se kokeilee kaikki mahdolliset yhdistelmät (määriteltyinä param_grid:ssä), 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