Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Kruisvalidering | Modellering
Introductie tot Machine Learning met Python

Kruisvalidering

Veeg om het menu te tonen

De train-test splitsing heeft twee nadelen:

  1. Minder trainingsdata, wat de modelkwaliteit kan verminderen;
  2. Afhankelijkheid van de willekeurige splitsing, wat leidt tot onstabiele resultaten. Om dit te voorkomen, gebruiken we cross-validatie.

Verdeel eerst de volledige dataset in 5 gelijke delen, ook wel folds genoemd.

folds_split

Gebruik vervolgens één fold als de testset en combineer de overige folds om de trainingsset te vormen.

CV stap 2

Zoals bij elk evaluatieproces wordt de trainingsset gebruikt om het model te trainen, terwijl de testset wordt gebruikt om de prestaties te meten.

CrossValStep3

Het proces wordt herhaald zodat elke fold één keer als testset fungeert, terwijl de overige folds de trainingsset vormen.

CV stap 3

Cross-validatie levert meerdere nauwkeurigheidsscores op—één per splitsing. Het gemiddelde hiervan geeft de gemiddelde prestatie van het model weer. In Python wordt dit berekend met cross_val_score().

Note
Opmerking

Je kunt elk aantal folds kiezen. Bijvoorbeeld, bij het gebruik van 10 folds wordt getraind op 9 delen en getest op 1 deel. Dit wordt ingesteld via de cv parameter in 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())

Kruisvalidering is betrouwbaarder maar trager, omdat het model n keer wordt getraind en geëvalueerd. Het wordt veel gebruikt bij hyperparameterafstemming, waarbij kruisvalidering wordt herhaald voor elke hyperparameterewaarde—bijvoorbeeld het testen van meerdere k-waarden in k-NN. Dit helpt bij het kiezen van de optie die consistent het beste presteert.

question mark

Waarom kan kruisvalidering de voorkeur hebben boven train-test split voor het evalueren van de prestaties van een machine learning-model?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 4
some-alt