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

bookKryssvalidering

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.

Deretter brukes én fold som testsett, og de resterende foldene kombineres for å danne treningssettet.

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

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

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

Note
Merk

Du kan velge et hvilket som helst antall fold. For eksempel betyr bruk av 10 fold at du trener på 9 deler og tester på 1. Dette angis via cv-parameteren i 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

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

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 3.13

bookKryssvalidering

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.

Deretter brukes én fold som testsett, og de resterende foldene kombineres for å danne treningssettet.

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

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

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

Note
Merk

Du kan velge et hvilket som helst antall fold. For eksempel betyr bruk av 10 fold at du trener på 9 deler og tester på 1. Dette angis via cv-parameteren i 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

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

question mark

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

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
some-alt