Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Korsvalidering | Modellering
Introduktion till maskininlärning med Python

Korsvalidering

Svep för att visa menyn

Train-test-uppdelningen har två nackdelar:

  1. Mindre träningsdata, vilket kan minska modellens kvalitet;
  2. Beroende av den slumpmässiga uppdelningen, vilket leder till instabila resultat. För att lösa detta används cross-validation.

Först delas hela datamängden upp i 5 lika stora delar, kallade folds.

folds_split

Använd sedan en vikning som testuppsättning och kombinera de återstående vikningarna för att skapa träningsuppsättningen.

CV steg 2

Som i alla utvärderingsprocesser används träningsuppsättningen för att träna modellen, medan testuppsättningen används för att mäta dess prestanda.

CrossValStep3

Processen upprepas så att varje delmängd fungerar som testuppsättning en gång, medan de övriga delmängderna utgör träningsuppsättningen.

CV step 3

Korsvalidering ger flera noggrannhetspoäng—en per uppdelning. Deras medelvärde representerar modellens genomsnittliga prestanda. I Python beräknas detta med cross_val_score().

Note
Notering

Du kan välja valfritt antal vikningar. Till exempel innebär användning av 10 vikningar att träna på 9 delar och testa på 1. Detta ställs in via parametern cv 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())

Korsvalidering är mer tillförlitlig men långsammare, eftersom modellen tränas och utvärderas n gånger. Det används ofta vid hyperparametertuning, där korsvalidering upprepas för varje hyperparametervärde—till exempel att testa flera k-värden i k-NN. Detta hjälper till att välja det alternativ som konsekvent presterar bäst.

question mark

Varför kan korsvalidering föredras framför train-test-split för att utvärdera prestandan hos en maskininlärningsmodell?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 4
some-alt