GridSearchCV: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.
Ä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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
GridSearchCV: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.
Ä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.
Kiitos palautteestasi!