Ristvalidointi
Junan-testausjako sisältää kaksi haittapuolta:
- Vähemmän opetusdataa, mikä voi heikentää mallin laatua;
- 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().
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().
1234567891011import 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ä, jossa ristiinvalidointi toistetaan jokaiselle hyperparametrin arvolle—esimerkiksi testattaessa useita k-arvoja k-NN:ssä.
Tämä auttaa valitsemaan vaihtoehdon, joka suoriutuu johdonmukaisesti parhaiten.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
Ristvalidointi
Pyyhkäise näyttääksesi valikon
Junan-testausjako sisältää kaksi haittapuolta:
- Vähemmän opetusdataa, mikä voi heikentää mallin laatua;
- 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().
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().
1234567891011import 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ä, jossa ristiinvalidointi toistetaan jokaiselle hyperparametrin arvolle—esimerkiksi testattaessa useita k-arvoja k-NN:ssä.
Tämä auttaa valitsemaan vaihtoehdon, joka suoriutuu johdonmukaisesti parhaiten.
Kiitos palautteestasi!