Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kryssvalidering | Modellering
Introduksjon til maskinlæring med Python

Kryssvalidering

Sveip for å vise menyen

Train-test-delingen har to ulemper:

  1. Mindre treningsdata, noe som kan redusere modellkvaliteten;
  2. Avhengighet av tilfeldig deling, som gir ustabile resultater. For å løse dette bruker vi kryssvalidering.

Først deles hele datasettet inn i 5 like store deler, kalt folds.

folds_split

Bruk deretter én fold som testsett og kombiner de gjenværende foldene for å danne treningssettet.

CV steg 2

Som i enhver evalueringsprosess brukes treningssettet til å trene modellen, mens testsettet brukes til å måle ytelsen.

CrossValStep3

Prosessen gjentas slik at hvert fold fungerer som testsett én gang, mens de gjenværende foldene utgjør treningssettet.

CV step 3

Kryssvalidering gir flere nøyaktighetspoeng—ett for hvert delsett. Deres gjennomsnitt representerer modellens gjennomsnittlige ytelse. I Python beregnes dette med cross_val_score().

Note
Merk

Du kan velge valgfritt antall fold. For eksempel betyr bruk av 10 fold at man trener på 9 deler og tester på 1. Dette settes via cv-parameteren i 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())

Kryssvalidering er mer pålitelig men tregere, siden modellen trenes og evalueres n ganger. Det brukes mye i hyperparameterjustering, der kryssvalidering gjentas for hver hyperparameterverdi—for eksempel ved å teste flere k-verdier i k-NN. Dette hjelper med å velge alternativet som konsekvent gir best resultater.

question mark

Hvorfor kan kryssvalidering foretrekkes fremfor train-test-splitt for å evaluere ytelsen til en maskinlæringsmodell?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 4
some-alt