Korsvalidering
Train-test-uppdelningen har två nackdelar:
- Mindre träningsdata, vilket kan minska modellens kvalitet;
- Beroende av den slumpmässiga uppdelningen, vilket leder till instabila resultat. För att hantera detta används cross-validation.
Först delas hela datasettet upp i 5 lika stora delar, kallade folds.
Därefter används en fold som testset och de återstående foldsen kombineras för att bilda träningssetet.
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.
Processen upprepas så att varje delmängd fungerar som testuppsättning en gång, medan de återstående delmängderna bildar träningsuppsättningen.
Korsvalidering ger flera noggrannhetspoäng—en per uppdelning.
Deras medelvärde representerar modellens genomsnittliga prestanda.
I Python beräknas detta med cross_val_score().
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 anges via parametern cv i 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())
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 vid testning av flera k-värden i k-NN.
Detta hjälper till att välja det alternativ som konsekvent presterar bäst.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain why cross-validation is more reliable than a simple train-test split?
How does cross-validation help with hyperparameter tuning?
What are some common variations of cross-validation besides k-fold?
Awesome!
Completion rate improved to 3.13
Korsvalidering
Svep för att visa menyn
Train-test-uppdelningen har två nackdelar:
- Mindre träningsdata, vilket kan minska modellens kvalitet;
- Beroende av den slumpmässiga uppdelningen, vilket leder till instabila resultat. För att hantera detta används cross-validation.
Först delas hela datasettet upp i 5 lika stora delar, kallade folds.
Därefter används en fold som testset och de återstående foldsen kombineras för att bilda träningssetet.
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.
Processen upprepas så att varje delmängd fungerar som testuppsättning en gång, medan de återstående delmängderna bildar träningsuppsättningen.
Korsvalidering ger flera noggrannhetspoäng—en per uppdelning.
Deras medelvärde representerar modellens genomsnittliga prestanda.
I Python beräknas detta med cross_val_score().
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 anges via parametern cv i 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())
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 vid testning av flera k-värden i k-NN.
Detta hjälper till att välja det alternativ som konsekvent presterar bäst.
Tack för dina kommentarer!