single
Haaste: Parhaan K-arvon Valinta
Pyyhkäise näyttääksesi valikon
Kuten aiemmissa luvuissa on esitetty, mallin ennusteet voivat vaihdella k-arvon (naapureiden määrä) mukaan. k-NN-mallia rakennettaessa on tärkeää valita sellainen k-arvo, joka tuottaa parhaan suorituskyvyn.
Yleinen lähestymistapa on käyttää ristivalidointia mallin suorituskyvyn arviointiin. Voit suorittaa silmukan ja laskea ristivalidointipisteet eri k-arvojen välillä, ja valita sitten sen, jolla on korkein pistemäärä. Tämä on yleisimmin käytetty menetelmä.
Tämän toteuttamiseen sklearn tarjoaa kätevän työkalun: GridSearchCV-luokan.
param_grid-parametri ottaa sanakirjan, jossa avaimet ovat parametrien nimiä ja arvot ovat listoja kokeiltavista vaihtoehdoista. Esimerkiksi, jos haluat testata arvoja 1–99 n_neighbors-parametrille, voit kirjoittaa:
param_grid = {'n_neighbors': range(1, 100)}
Kun kutsut .fit(X, y)-metodia GridSearchCV-oliolle, se käy läpi parametriverkon löytääkseen parhaat parametrit ja kouluttaa mallin uudelleen koko aineistolla käyttäen näitä parhaita parametreja.
Voit tarkastella parasta pistemäärää .best_score_-attribuutilla ja tehdä ennusteita optimoidulla mallilla käyttämällä .predict()-metodia. Samoin voit hakea parhaan mallin itsessään .best_estimator_-attribuutilla.
Pyyhkäise aloittaaksesi koodauksen
Sinulle on annettu Star Wars -arvosteludata, joka on tallennettu DataFrame-muodossa muuttujaan df.
- Alusta
param_gridsanakirjaksi, joka sisältään_neighbors-parametrin arvoilla[3, 9, 18, 27]. - Luo
GridSearchCV-olio käyttäenparam_grid-sanakirjaa ja 4-osaisella ristiinvalidoinnilla, kouluta se ja tallenna muuttujaangrid_search. - Hae paras malli
grid_search-oliosta ja tallenna se muuttujaanbest_model. - Hae parhaan mallin pistemäärä ja tallenna se muuttujaan
best_score.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme