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

bookKrydsvalidering

Opdelingen i trænings- og testdatasæt har to ulemper:

  1. Mindre træningsdata, hvilket kan reducere modellens kvalitet;
  2. Afhængighed af den tilfældige opdeling, hvilket kan give ustabile resultater. For at løse dette anvendes krydsgodkendelse.

Først opdeles hele datasættet i 5 lige store dele, kaldet folds.

Dernæst bruges én fold som testdatasæt, og de resterende fold kombineres til et træningsdatasæt.

Som i enhver evalueringsproces bruges træningssættet til at træne modellen, mens testdatasættet anvendes til at måle dens ydeevne.

Processen gentages, så hvert fold fungerer som testdatasæt én gang, mens de resterende fold udgør træningssættet.

Krydvalidiering giver flere nøjagtighedsscorer—én for hver opdeling. Deres gennemsnit repræsenterer modellens gennemsnitlige ydeevne. I Python beregnes dette med cross_val_score().

Note
Bemærk

Du kan vælge et vilkårligt antal fold. For eksempel betyder brug af 10 fold, at der trænes på 9 dele og testes på 1. Dette indstilles 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

Krydvalidiering er mere pålidelig, men langsommere, da modellen trænes og evalueres n gange. Det anvendes bredt i hyperparameter-tuning, hvor krydvalidiering gentages for hver hyperparameterværdi—for eksempel ved test af flere k-værdier i k-NN. Dette hjælper med at vælge den mulighed, der konsekvent klarer sig bedst.

question mark

Hvorfor kan krydsvalidering foretrækkes frem for trænings-test-opdeling til evaluering af ydeevnen for en maskinlæringsmodel?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookKrydsvalidering

Stryg for at vise menuen

Opdelingen i trænings- og testdatasæt har to ulemper:

  1. Mindre træningsdata, hvilket kan reducere modellens kvalitet;
  2. Afhængighed af den tilfældige opdeling, hvilket kan give ustabile resultater. For at løse dette anvendes krydsgodkendelse.

Først opdeles hele datasættet i 5 lige store dele, kaldet folds.

Dernæst bruges én fold som testdatasæt, og de resterende fold kombineres til et træningsdatasæt.

Som i enhver evalueringsproces bruges træningssættet til at træne modellen, mens testdatasættet anvendes til at måle dens ydeevne.

Processen gentages, så hvert fold fungerer som testdatasæt én gang, mens de resterende fold udgør træningssættet.

Krydvalidiering giver flere nøjagtighedsscorer—én for hver opdeling. Deres gennemsnit repræsenterer modellens gennemsnitlige ydeevne. I Python beregnes dette med cross_val_score().

Note
Bemærk

Du kan vælge et vilkårligt antal fold. For eksempel betyder brug af 10 fold, at der trænes på 9 dele og testes på 1. Dette indstilles 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

Krydvalidiering er mere pålidelig, men langsommere, da modellen trænes og evalueres n gange. Det anvendes bredt i hyperparameter-tuning, hvor krydvalidiering gentages for hver hyperparameterværdi—for eksempel ved test af flere k-værdier i k-NN. Dette hjælper med at vælge den mulighed, der konsekvent klarer sig bedst.

question mark

Hvorfor kan krydsvalidering foretrækkes frem for trænings-test-opdeling til evaluering af ydeevnen for en maskinlæringsmodel?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4
some-alt