Gridsearchcv: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
.
Ä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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Gridsearchcv: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
.
Ä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.
Kiitos palautteestasi!