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ää huomioida, 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 itseisarvojen erotusten summa);
  • p=2: Euklidinen etäisyys (suora etäisyys, tuttu geometriasta).

Parametri p 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ää.

Edellisessä luvussa GridSearchCV-menetelmää käytettiin säätämään vain n_neighbors-parametria. Parhaan yhdistelmän etsimiseksi parametreille n_neighbors, weights ja p, voidaan param_grid määritellä 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 merkittävästi.

Tällaisissa tapauksissa suositaan usein RandomizedSearchCV-menetelmää. Se tutkii vain osan kaikista mahdollisista yhdistelmistä, mikä vähentää laskenta-aikaa huomattavasti ja tuottaa silti hyviä tuloksia.

question mark

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

Awesome!

Completion rate improved to 3.13

bookGridSearchCV:n Puute

Pyyhkäise näyttääksesi valikon

Ennen kuin tutustutaan GridSearchCV:hen, on tärkeää huomioida, 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 itseisarvojen erotusten summa);
  • p=2: Euklidinen etäisyys (suora etäisyys, tuttu geometriasta).

Parametri p 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ää.

Edellisessä luvussa GridSearchCV-menetelmää käytettiin säätämään vain n_neighbors-parametria. Parhaan yhdistelmän etsimiseksi parametreille n_neighbors, weights ja p, voidaan param_grid määritellä 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 merkittävästi.

Tällaisissa tapauksissa suositaan usein RandomizedSearchCV-menetelmää. Se tutkii vain osan kaikista mahdollisista yhdistelmistä, mikä vähentää laskenta-aikaa huomattavasti ja tuottaa silti hyviä tuloksia.

question mark

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