Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Overfitting | Het Beste Model Kiezen
Lineaire Regressie met Python

bookOverfitting

Overfitting

Bekijk de twee regressielijnen hieronder. Welke is beter?

De statistieken suggereren dat het tweede model beter is, dus gebruiken we dit om X_new = [0.2, 0.5, 2.7] te voorspellen. Maar na het vergelijken van de voorspellingen met de werkelijke waarden, presteert het eerste model beter.

Dit gebeurt omdat het tweede model overfit — het is te complex en past te nauw op de trainingsdata, waardoor het niet goed generaliseert naar nieuwe gevallen.

Underfitting

Underfitting treedt op wanneer een model te eenvoudig is om zelfs de trainingsdata te benaderen, wat ook leidt tot slechte voorspellingen op niet eerder geziene data.

We kunnen dus proberen visueel te beoordelen of het model underfit of overfit.

Omdat we modellen met hoge dimensies niet kunnen visualiseren, hebben we een andere methode nodig om overfitting of underfitting te detecteren.

Train-test splitsing

Om de prestaties op onbekende data te schatten, splitsen we de dataset in een trainingset en een testset met bekende targets.

We trainen op de trainingset en berekenen statistieken op zowel de trainingset als de testset om de prestaties te vergelijken.

De splitsing moet willekeurig zijn. Gewoonlijk gaat 20–30% naar de testset en wordt 70–80% gebruikt voor training. Scikit-learn biedt een eenvoudige manier om dit te doen.

Bijvoorbeeld, om de trainingset te splitsen in 70% training/30% test, kun je de volgende code gebruiken:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Bepaal op basis van de MSE-scores van de modellen of ze overfitten/underfitten op de trainingset (de dataset is hetzelfde).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

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

Suggested prompts:

Can you explain more about how overfitting and underfitting affect model performance?

What are some ways to prevent overfitting in machine learning models?

How do I choose the right train-test split ratio for my dataset?

Awesome!

Completion rate improved to 5.26

bookOverfitting

Veeg om het menu te tonen

Overfitting

Bekijk de twee regressielijnen hieronder. Welke is beter?

De statistieken suggereren dat het tweede model beter is, dus gebruiken we dit om X_new = [0.2, 0.5, 2.7] te voorspellen. Maar na het vergelijken van de voorspellingen met de werkelijke waarden, presteert het eerste model beter.

Dit gebeurt omdat het tweede model overfit — het is te complex en past te nauw op de trainingsdata, waardoor het niet goed generaliseert naar nieuwe gevallen.

Underfitting

Underfitting treedt op wanneer een model te eenvoudig is om zelfs de trainingsdata te benaderen, wat ook leidt tot slechte voorspellingen op niet eerder geziene data.

We kunnen dus proberen visueel te beoordelen of het model underfit of overfit.

Omdat we modellen met hoge dimensies niet kunnen visualiseren, hebben we een andere methode nodig om overfitting of underfitting te detecteren.

Train-test splitsing

Om de prestaties op onbekende data te schatten, splitsen we de dataset in een trainingset en een testset met bekende targets.

We trainen op de trainingset en berekenen statistieken op zowel de trainingset als de testset om de prestaties te vergelijken.

De splitsing moet willekeurig zijn. Gewoonlijk gaat 20–30% naar de testset en wordt 70–80% gebruikt voor training. Scikit-learn biedt een eenvoudige manier om dit te doen.

Bijvoorbeeld, om de trainingset te splitsen in 70% training/30% test, kun je de volgende code gebruiken:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Bepaal op basis van de MSE-scores van de modellen of ze overfitten/underfitten op de trainingset (de dataset is hetzelfde).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 2
some-alt