Ristivalidointi
Pyyhkäise näyttääksesi valikon
Jako opetus- ja testiaineistoon 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.
Ensiksi koko aineisto jaetaan viiteen yhtä suureen osaan, joita kutsutaan taitoksiksi.
Seuraavaksi käytetään yhtä osaa testijoukkona ja yhdistetään jäljelle jäävät osat muodostamaan opetusjoukko.
Kuten missä tahansa arviointiprosessissa, opetusjoukkoa käytetään mallin kouluttamiseen ja testijoukkoa sen suorituskyvyn mittaamiseen.
Prosessi toistetaan siten, että kukin lohko toimii kerran testijoukkona, kun taas jäljelle jäävät lohkot muodostavat opetusjoukon.
Ristiinvalidointi tuottaa useita tarkkuuspisteitä—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 lohkoja. Esimerkiksi 10 lohkoa tarkoittaa, että koulutetaan 9 osalla ja testataan 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ä, jolloin 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