GridSearchCV:n Puute
Pyyhkäise näyttääksesi valikon
Ennen kuin käytät GridSearchCV:tä, huomaa, että KNeighborsClassifier-luokalla on enemmän hyperparametreja kuin pelkkä n_neighbors. Kaksi tärkeää ovat weights ja p.
Painot
Oletuksena luokittelija käyttää weights='uniform', jolloin kaikki k naapuria äänestävät yhtä paljon.
Asettamalla weights='distance' läheisemmät naapurit saavat enemmän vaikutusvaltaa, mikä usein parantaa ennusteita, kun lähellä olevat pisteet ovat merkityksellisempiä.
P
Parametri p määrittää etäisyysmetriikan:
p=1: Manhattan-etäisyys;p=2: Euklidinen etäisyys.
Parametri p voi olla mikä tahansa positiivinen kokonaisluku. Etäisyyksiä on monia erilaisia, mutta niitä on vaikeampi havainnollistaa kuin arvoja p=1 tai p=2.
Älä huoli, jos weights- tai p-parametrien yksityiskohdat eivät ole 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 kokeilee kaikkia näitä:
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ä toimii pienillä aineistoilla, mutta suuremmilla se hidastuu liikaa.
Laskenta-ajan vähentämiseksi RandomizedSearchCV testaa vain satunnaisen osajoukon yhdistelmistä, ja löytää yleensä hyviä tuloksia paljon nopeammin kuin täydellinen ruutuhaku.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme