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
course content

Cursusinhoud

Lineaire Regressie Met Python

Lineaire Regressie Met Python

1. Eenvoudige Lineaire Regressie
2. Meervoudige Lineaire Regressie
3. Polynomiale Regressie
4. Het Beste Model Kiezen

book
Overfitting

Overfitting

Beschouw de twee regressielijnen hieronder. Welke is beter?

Volgens de statistieken is de tweede beter. Dan gebruiken we die 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 zojuist 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 we Meervoudige Lineaire Regressie met veel kenmerken niet kunnen visualiseren. 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 werkelijke doelwaarden. En we hebben alleen werkelijke 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 wil je ongeveer 20-30% van je trainingsset gebruiken als testset, en de overige 70-80% blijft als trainingsset over. 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.

course content

Cursusinhoud

Lineaire Regressie Met Python

Lineaire Regressie Met Python

1. Eenvoudige Lineaire Regressie
2. Meervoudige Lineaire Regressie
3. Polynomiale Regressie
4. Het Beste Model Kiezen

book
Overfitting

Overfitting

Beschouw de twee regressielijnen hieronder. Welke is beter?

Volgens de statistieken is de tweede beter. Dan gebruiken we die 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 zojuist 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 we Meervoudige Lineaire Regressie met veel kenmerken niet kunnen visualiseren. 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 werkelijke doelwaarden. En we hebben alleen werkelijke 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 wil je ongeveer 20-30% van je trainingsset gebruiken als testset, en de overige 70-80% blijft als trainingsset over. 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