Cursusinhoud
Lineaire Regressie Met Python
Lineaire Regressie Met Python
R-Kwadraat
Wat is R-kwadraat
We hebben enkele van de meest gebruikte metriek voor regressie behandeld in het hoofdstuk Metrics. Dit zijn MSE, RMSE en MAE. Deze zijn geschikt voor het vergelijken van modellen, maar wanneer u één model bouwt, is het niet altijd duidelijk of dit een goede score is voor uw dataset of dat u verder moet zoeken naar andere modellen.
Gelukkig is er een metriek genaamd R-kwadraat die de prestaties van het model meet op een schaal van 0 tot 1. R-kwadraat berekent het aandeel van de variantie van de target dat door het model wordt verklaard.
Het probleem is dat we de verklaarde variantie niet direct kunnen berekenen. Maar we kunnen de onverklaarde variantie wel 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):
Hier is een voorbeeld met visualisatie. Verschillen tussen de werkelijke targetwaarde en het gemiddelde van de target zijn oranje gekleurd. Net als bij het berekenen van SSR nemen we de lengte van elke oranje lijn, kwadrateren deze en tellen het op bij de som, maar nu delen we het resultaat ook door m-1. Hier hebben we een totale variantie van 11,07 verkregen.
Onverklaarde variantie
Nu moeten we de variantie berekenen die niet door het model wordt verklaard. Als het model de volledige variantie zou verklaren, zouden alle punten op de getekende regressielijn liggen. Dat is zelden het geval, dus willen we de variantie van de target berekenen, maar nu ten opzichte van de regressielijn in plaats van het gemiddelde. We gebruiken dezelfde formule, maar vervangen ȳ door de voorspellingen van het model.
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.
Samengevat is R-kwadraat een maatstaf voor regressie. Het kan waarden aannemen van 0 tot 1. In tegenstelling tot andere maatstaven zoals MSE/MAE, is een hogere waarde beter (tenzij het model overfit). Je vindt de R-kwadraat in de summary()
-tabel van de sm.OLS
-klasse.
Bedankt voor je feedback!