Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Parhaan K-arvon Valitseminen | Osio
Ohjatun Oppimisen Perusteet

bookHaaste: Parhaan K-arvon Valitseminen

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 useille k-arvoille, ja valita sitten sen, jolla on korkein pistemäärä. Tämä on laajimmin käytetty menetelmä.

Tämän toteuttamiseen sklearn tarjoaa kätevän työkalun: GridSearchCV-luokan.

Konstruktori:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — mallin olio;
  • param_grid — sanakirja, jossa on haettavat parametrien arvot;
  • scoring — metriikka, jota käytetään ristivalidointipisteen laskemiseen;
  • cv — taitosten määrä (oletuksena 5);

Menetelmät:

  • fit(X, y) — mallien koulutus X:n ja y:n avulla;
  • predict(X) — luokan ennustaminen X:lle;
  • score(X, y) — palauttaa tarkkuuden X- ja y-joukolle;

Attribuutit:

  • best_estimator_ — paras pistemäärän saanut mallin olio;
  • best_score_best_estimator_:n pistemäärä.

param_grid-parametri ottaa sanakirjan, jossa avaimet ovat parametrien nimiä ja arvot ovat listoja kokeiltavista vaihtoehdoista. Esimerkiksi, jos haluat testata 1-arvoja välillä 99n_neighbors, 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 näillä parhailla parametreilla.

Voit tarkastella parasta pistemäärää .best_score_-attribuutin avulla ja tehdä ennusteita optimoidulla mallilla käyttämällä .predict()-metodia. Vastaavasti voit hakea parhaan mallin itsessään .best_estimator_-attribuutin avulla.

Tehtävä

Swipe to start coding

Sinulle on annettu Star Wars -arvosteludatajoukko, joka on tallennettu DataFrame-muodossa muuttujaan df.

  • Alusta param_grid sanakirjana, joka sisältää n_neighbors-parametrin arvot [3, 9, 18, 27].
  • Luo GridSearchCV-olio käyttäen param_grid-sanakirjaa ja 4-osaisella ristiinvalidoinnilla, kouluta se ja tallenna muuttujaan grid_search.
  • Hae paras malli grid_search-oliosta ja tallenna se muuttujaan best_model.
  • Hae parhaan mallin pistemäärä ja tallenna se muuttujaan best_score.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 20
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookHaaste: Parhaan K-arvon Valitseminen

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 useille k-arvoille, ja valita sitten sen, jolla on korkein pistemäärä. Tämä on laajimmin käytetty menetelmä.

Tämän toteuttamiseen sklearn tarjoaa kätevän työkalun: GridSearchCV-luokan.

Konstruktori:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — mallin olio;
  • param_grid — sanakirja, jossa on haettavat parametrien arvot;
  • scoring — metriikka, jota käytetään ristivalidointipisteen laskemiseen;
  • cv — taitosten määrä (oletuksena 5);

Menetelmät:

  • fit(X, y) — mallien koulutus X:n ja y:n avulla;
  • predict(X) — luokan ennustaminen X:lle;
  • score(X, y) — palauttaa tarkkuuden X- ja y-joukolle;

Attribuutit:

  • best_estimator_ — paras pistemäärän saanut mallin olio;
  • best_score_best_estimator_:n pistemäärä.

param_grid-parametri ottaa sanakirjan, jossa avaimet ovat parametrien nimiä ja arvot ovat listoja kokeiltavista vaihtoehdoista. Esimerkiksi, jos haluat testata 1-arvoja välillä 99n_neighbors, 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 näillä parhailla parametreilla.

Voit tarkastella parasta pistemäärää .best_score_-attribuutin avulla ja tehdä ennusteita optimoidulla mallilla käyttämällä .predict()-metodia. Vastaavasti voit hakea parhaan mallin itsessään .best_estimator_-attribuutin avulla.

Tehtävä

Swipe to start coding

Sinulle on annettu Star Wars -arvosteludatajoukko, joka on tallennettu DataFrame-muodossa muuttujaan df.

  • Alusta param_grid sanakirjana, joka sisältää n_neighbors-parametrin arvot [3, 9, 18, 27].
  • Luo GridSearchCV-olio käyttäen param_grid-sanakirjaa ja 4-osaisella ristiinvalidoinnilla, kouluta se ja tallenna muuttujaan grid_search.
  • Hae paras malli grid_search-oliosta ja tallenna se muuttujaan best_model.
  • Hae parhaan mallin pistemäärä ja tallenna se muuttujaan best_score.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 20
single

single

some-alt