Kruisvalidering
De train-test splitsing heeft twee nadelen:
- Minder trainingsdata, wat de modelkwaliteit kan verminderen;
- 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, bekend als folds.
Gebruik vervolgens één fold als testset en combineer de overige folds tot de trainingsset.
Zoals bij elk evaluatieproces wordt de trainingset gebruikt om het model te trainen, terwijl de testset wordt gebruikt om de prestaties te meten.
Het proces wordt herhaald zodat elke fold één keer als testset fungeert, terwijl de overige folds de trainingset vormen.
Cross-validatie levert meerdere nauwkeurigheidsscores op—één per splitsing.
Het gemiddelde hiervan vertegenwoordigt de gemiddelde prestatie van het model.
In Python wordt dit berekend met cross_val_score().
U kunt elke hoeveelheid folds kiezen. Bijvoorbeeld, het gebruik van 10 folds betekent trainen op 9 delen en testen op 1.
Dit wordt ingesteld via de parameter cv in 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())
Cross-validatie is betrouwbaarder maar trager, omdat het model n keer wordt getraind en geëvalueerd.
Het wordt veel gebruikt bij hyperparameterafstemming, waarbij cross-validatie 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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.13
Kruisvalidering
Veeg om het menu te tonen
De train-test splitsing heeft twee nadelen:
- Minder trainingsdata, wat de modelkwaliteit kan verminderen;
- 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, bekend als folds.
Gebruik vervolgens één fold als testset en combineer de overige folds tot de trainingsset.
Zoals bij elk evaluatieproces wordt de trainingset gebruikt om het model te trainen, terwijl de testset wordt gebruikt om de prestaties te meten.
Het proces wordt herhaald zodat elke fold één keer als testset fungeert, terwijl de overige folds de trainingset vormen.
Cross-validatie levert meerdere nauwkeurigheidsscores op—één per splitsing.
Het gemiddelde hiervan vertegenwoordigt de gemiddelde prestatie van het model.
In Python wordt dit berekend met cross_val_score().
U kunt elke hoeveelheid folds kiezen. Bijvoorbeeld, het gebruik van 10 folds betekent trainen op 9 delen en testen op 1.
Dit wordt ingesteld via de parameter cv in 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())
Cross-validatie is betrouwbaarder maar trager, omdat het model n keer wordt getraind en geëvalueerd.
Het wordt veel gebruikt bij hyperparameterafstemming, waarbij cross-validatie 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.
Bedankt voor je feedback!