Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ristivalidointi | Mallintaminen
Johdatus koneoppimiseen Pythonilla

Ristivalidointi

Pyyhkäise näyttääksesi valikon

Jako opetus- ja testiaineistoon sisältää kaksi haittapuolta:

  1. Vähemmän opetusdataa, mikä voi heikentää mallin laatua;
  2. Riippuvuus satunnaisesta jaosta, mikä aiheuttaa epävakaita tuloksia. Tämän ratkaisemiseksi käytetään ristivalidointia.

Ensiksi koko aineisto jaetaan viiteen yhtä suureen osaan, joita kutsutaan taitoksiksi.

taitosten_jako

Seuraavaksi käytetään yhtä osaa testijoukkona ja yhdistetään jäljelle jäävät osat muodostamaan opetusjoukko.

CV vaihe 2

Kuten missä tahansa arviointiprosessissa, opetusjoukkoa käytetään mallin kouluttamiseen ja testijoukkoa sen suorituskyvyn mittaamiseen.

CrossValStep3

Prosessi toistetaan siten, että kukin lohko toimii kerran testijoukkona, kun taas jäljelle jäävät lohkot muodostavat opetusjoukon.

CV step 3

Ristiinvalidointi tuottaa useita tarkkuuspisteitä—yksi kutakin jakoa kohden. Niiden keskiarvo kuvaa mallin keskimääräistä suorituskykyä. Pythonissa tämä lasketaan funktiolla cross_val_score().

Note
Huomio

Voit valita minkä tahansa määrän lohkoja. Esimerkiksi 10 lohkoa tarkoittaa, että koulutetaan 9 osalla ja testataan yhdellä. Tämä määritetään cv-parametrilla funktiossa cross_val_score().

cross_val_score
1234567891011
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())

Ristiinvalidointi on luotettavampi, mutta hitaampi, koska malli koulutetaan ja arvioidaan n kertaa. Sitä käytetään laajasti hyperparametrien virityksessä, jolloin ristiinvalidointi toistetaan jokaiselle hyperparametrin arvolle—esimerkiksi testattaessa useita k-arvoja k-NN:ssä. Tämä auttaa valitsemaan vaihtoehdon, joka suoriutuu johdonmukaisesti parhaiten.

question mark

Miksi ristiinvalidointia voidaan pitää parempana kuin train-test-jakoa koneoppimismallin suorituskyvyn arvioinnissa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 4. Luku 4
some-alt