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?

Volgens de statistieken is de tweede beter. Dus gebruiken we deze om nieuwe waarden te voorspellen! We hebben de voorspellingen nodig voor X_new = [0.2,0.5,2.7]. Maar toen we de werkelijke doelwaarden voor de voorspelde X_new kregen, bleek dat het eerste model een veel betere voorspelling had.

Dat komt omdat het tweede model overfit op de trainingsset. Overfitting betekent dat het gebouwde model te complex is, waardoor het perfect past op de trainingsdata, maar het voorspellen van niet eerder geziene gevallen minder goed gaat.

Underfitting

Er is ook nog een ander concept, underfitting. Dit betekent dat het gebouwde model te eenvoudig is, waardoor het zelfs de trainingsdata niet goed benadert. In zulke gevallen zijn de voorspellingen voor onbekende gevallen ook onjuist.

Het is mogelijk om visueel te beoordelen of het model underfit of overfit.

We weten al dat Multiple Linear Regression met veel kenmerken niet te visualiseren is. Is er een andere manier om te bepalen of het model overfit of underfit? Die is er inderdaad.

Train-test-splits

We willen weten hoe het model presteert op niet eerder geziene voorbeelden. Daarvoor hebben we niet eerder geziene voorbeelden nodig met de bijbehorende echte doelwaarden. En we hebben alleen echte doelwaarden in de trainingsset. De oplossing is om de trainingsset op te splitsen in twee sets: een trainingsset en een testset.

Nu kunnen we het model bouwen met de trainingsset, de metriekwaarden berekenen op de trainingsset (bekende voorbeelden) en vervolgens de metriekwaarden berekenen op de testset (onbekende voorbeelden).

Het is essentieel om de trainingsset willekeurig te splitsen. Gewoonlijk wordt ongeveer 20-30% van de trainingsset gebruikt als testset, terwijl de overige 70-80% als trainingsset wordt gebruikt. Scikit-learn biedt een eenvoudige functie om de set willekeurig te splitsen:

Bijvoorbeeld, om de trainingsset 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 trainingsset (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.

Awesome!

Completion rate improved to 5.26

bookOverfitting

Veeg om het menu te tonen

Overfitting

Bekijk de twee regressielijnen hieronder. Welke is beter?

Volgens de statistieken is de tweede beter. Dus gebruiken we deze om nieuwe waarden te voorspellen! We hebben de voorspellingen nodig voor X_new = [0.2,0.5,2.7]. Maar toen we de werkelijke doelwaarden voor de voorspelde X_new kregen, bleek dat het eerste model een veel betere voorspelling had.

Dat komt omdat het tweede model overfit op de trainingsset. Overfitting betekent dat het gebouwde model te complex is, waardoor het perfect past op de trainingsdata, maar het voorspellen van niet eerder geziene gevallen minder goed gaat.

Underfitting

Er is ook nog een ander concept, underfitting. Dit betekent dat het gebouwde model te eenvoudig is, waardoor het zelfs de trainingsdata niet goed benadert. In zulke gevallen zijn de voorspellingen voor onbekende gevallen ook onjuist.

Het is mogelijk om visueel te beoordelen of het model underfit of overfit.

We weten al dat Multiple Linear Regression met veel kenmerken niet te visualiseren is. Is er een andere manier om te bepalen of het model overfit of underfit? Die is er inderdaad.

Train-test-splits

We willen weten hoe het model presteert op niet eerder geziene voorbeelden. Daarvoor hebben we niet eerder geziene voorbeelden nodig met de bijbehorende echte doelwaarden. En we hebben alleen echte doelwaarden in de trainingsset. De oplossing is om de trainingsset op te splitsen in twee sets: een trainingsset en een testset.

Nu kunnen we het model bouwen met de trainingsset, de metriekwaarden berekenen op de trainingsset (bekende voorbeelden) en vervolgens de metriekwaarden berekenen op de testset (onbekende voorbeelden).

Het is essentieel om de trainingsset willekeurig te splitsen. Gewoonlijk wordt ongeveer 20-30% van de trainingsset gebruikt als testset, terwijl de overige 70-80% als trainingsset wordt gebruikt. Scikit-learn biedt een eenvoudige functie om de set willekeurig te splitsen:

Bijvoorbeeld, om de trainingsset 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 trainingsset (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