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

bookRistvalidointi

Junan-testausjako 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.

Aluksi jaa koko aineisto viiteen yhtä suureen osaan, joita kutsutaan taitoksiksi.

Seuraavaksi käytä yhtä taitosta testijoukkona ja yhdistä loput taitokset muodostamaan opetusjoukko.

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

Prosessi toistetaan siten, että jokainen osajoukko toimii kerran testijoukkona, kun taas jäljelle jäävät osajoukot muodostavat opetusjoukon.

Ristivalidointi tuottaa useita tarkkuuslukuja—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 osia. Esimerkiksi 10 osaa tarkoittaa, että koulutus tehdään 9 osalla ja testaus yhdellä. Tämä määritetään cv-parametrilla funktiossa 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())
copy

Ristiinvalidointi on luotettavampi, mutta hitaampi, koska malli koulutetaan ja arvioidaan n kertaa. Sitä käytetään laajasti hyperparametrien virityksessä, jossa 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 ristiinvalidointi voi olla suositeltavampaa kuin train-test-jako koneoppimismallin suorituskyvyn arvioinnissa?

Select the correct answer

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

Awesome!

Completion rate improved to 3.13

bookRistvalidointi

Pyyhkäise näyttääksesi valikon

Junan-testausjako 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.

Aluksi jaa koko aineisto viiteen yhtä suureen osaan, joita kutsutaan taitoksiksi.

Seuraavaksi käytä yhtä taitosta testijoukkona ja yhdistä loput taitokset muodostamaan opetusjoukko.

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

Prosessi toistetaan siten, että jokainen osajoukko toimii kerran testijoukkona, kun taas jäljelle jäävät osajoukot muodostavat opetusjoukon.

Ristivalidointi tuottaa useita tarkkuuslukuja—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 osia. Esimerkiksi 10 osaa tarkoittaa, että koulutus tehdään 9 osalla ja testaus yhdellä. Tämä määritetään cv-parametrilla funktiossa 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())
copy

Ristiinvalidointi on luotettavampi, mutta hitaampi, koska malli koulutetaan ja arvioidaan n kertaa. Sitä käytetään laajasti hyperparametrien virityksessä, jossa 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 ristiinvalidointi voi olla suositeltavampaa kuin train-test-jako koneoppimismallin suorituskyvyn arvioinnissa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
some-alt