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

bookKruisvalidering

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, 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().

Note
Opmerking

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().

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

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.

question mark

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

Select the correct answer

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.

Awesome!

Completion rate improved to 3.13

bookKruisvalidering

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, 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().

Note
Opmerking

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().

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

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.

question mark

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

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4
some-alt