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

bookR-Kwadraat

Wat is R-kwadraat

We hebben MSE, RMSE en MAE al behandeld. Deze helpen bij het vergelijken van modellen, maar een enkele score is moeilijk te beoordelen zonder context. Het is mogelijk dat je niet weet of de waarde “goed genoeg” is voor jouw dataset.

R-kwadraat lost dit op door te meten hoeveel van de variantie van de target door het model wordt verklaard. De waarde ligt tussen 0 en 1, waardoor interpretatie eenvoudig is.

Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:

Totale variantie

De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met behulp van de steekproefvariantieformule uit de statistiek ( is het gemiddelde van de target):

In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van de target (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11.07 oplevert.

Onverklaarde variantie

Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten exact op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen door de voorspelde waarden.

Hier is een voorbeeld met visualisatie:

Nu weten we alles om de R-kwadraat te berekenen:

We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook de R-kwadraat voor nog een model berekenen.

De R-kwadraat is lager omdat het model de data enigszins onderfit.

R-kwadraat in Python

De sm.OLS-klasse berekent de R-kwadraat voor ons. We kunnen deze vinden in de summary()-tabel hier.

R-kwadraat varieert van 0 tot 1, waarbij hoger beter is (tenzij het model overfit). De summary()-uitvoer van sm.OLS bevat de R-kwadraat score.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

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

bookR-Kwadraat

Veeg om het menu te tonen

Wat is R-kwadraat

We hebben MSE, RMSE en MAE al behandeld. Deze helpen bij het vergelijken van modellen, maar een enkele score is moeilijk te beoordelen zonder context. Het is mogelijk dat je niet weet of de waarde “goed genoeg” is voor jouw dataset.

R-kwadraat lost dit op door te meten hoeveel van de variantie van de target door het model wordt verklaard. De waarde ligt tussen 0 en 1, waardoor interpretatie eenvoudig is.

Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie berekenen, dus we herschrijven de bovenstaande vergelijking als volgt:

Totale variantie

De totale variantie is simpelweg de variantie van de target, en we kunnen de variantie van de target berekenen met behulp van de steekproefvariantieformule uit de statistiek ( is het gemiddelde van de target):

In het voorbeeld worden de verschillen tussen de werkelijke waarden en het gemiddelde van de target (oranje lijnen) gekwadrateerd en opgeteld, vervolgens gedeeld door m−1, wat een totale variantie van 11.07 oplevert.

Onverklaarde variantie

Vervolgens berekenen we de variantie die het model niet verklaart. Als de voorspellingen perfect zouden zijn, zouden alle punten exact op de regressielijn liggen. We gebruiken dezelfde variantieformule, maar vervangen door de voorspelde waarden.

Hier is een voorbeeld met visualisatie:

Nu weten we alles om de R-kwadraat te berekenen:

We hebben een R-kwadraat score van 0,92 behaald, wat dicht bij 1 ligt, dus we hebben een uitstekend model. We zullen ook de R-kwadraat voor nog een model berekenen.

De R-kwadraat is lager omdat het model de data enigszins onderfit.

R-kwadraat in Python

De sm.OLS-klasse berekent de R-kwadraat voor ons. We kunnen deze vinden in de summary()-tabel hier.

R-kwadraat varieert van 0 tot 1, waarbij hoger beter is (tenzij het model overfit). De summary()-uitvoer van sm.OLS bevat de R-kwadraat score.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
some-alt