Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele R-squared | Parhaan Mallin Valitseminen
Lineaarinen Regressio Pythonilla

R-squared

Pyyhkäise näyttääksesi valikon

Mikä on R-squared

Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat mallien vertailussa, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" omalle aineistollesi.

R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen vaihtelusta malli selittää. Sen arvo vaihtelee välillä 0–1, mikä tekee tulkinnasta yksinkertaista.

RSquaredFormulaSimple

Ongelma on, että selitettyä varianssia ei voida laskea suoraan. Selittämätön varianssi voidaan kuitenkin laskea, joten muunnamme yllä olevan yhtälön seuraavasti:

RSquaredFormula

Kokonaisvarianssi

Kokonaisvarianssi on vain kohteen varianssi, ja kohteen varianssi voidaan laskea tilastotieteen otosvarianssikaavalla ( on kohteen keskiarvo):

Kokonaisvaihtelu

Esimerkissä todellisten arvojen ja tavoitekeskiarvon (oranssit viivat) erot korotetaan toiseen potenssiin ja summataan, minkä jälkeen ne jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11,07.

Kokonaisvaihtelun kaavio

Selittämätön varianssi

Seuraavaksi lasketaan varianssi, jota malli ei selitä. Jos ennusteet olisivat täydellisiä, kaikki pisteet olisivat täsmälleen regressiosuoralla. Käytetään samaa varianssikaavaa, mutta korvataan ennustetuilla arvoilla.

Selittämätön varianssi

Tässä esimerkki visualisoinnin kanssa:

UnexplainedVariationGraph

Nyt tiedämme kaiken tarvittavan R-squared-arvon laskemiseen:

R2Example

Saimme R-squared-arvoksi 0,92, mikä on lähellä arvoa 1, joten mallimme on erinomainen. Lasketaan R-squared myös yhdelle toiselle mallille.

R2Example2

R-squared on matalampi, koska malli alisovittaa dataa hieman.

R-squared Pythonissa

sm.OLS-luokka laskee R-squared-arvon puolestamme. Löydämme sen summary()-taulukosta täällä.

Yhteenveto

R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli yliopeta). summary()-luokan sm.OLS-tuloste sisältää R-squared-pistemäärän.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

R-squared

Mikä on R-squared

Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat mallien vertailussa, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" omalle aineistollesi.

R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen vaihtelusta malli selittää. Sen arvo vaihtelee välillä 0–1, mikä tekee tulkinnasta yksinkertaista.

RSquaredFormulaSimple

Ongelma on, että selitettyä varianssia ei voida laskea suoraan. Selittämätön varianssi voidaan kuitenkin laskea, joten muunnamme yllä olevan yhtälön seuraavasti:

RSquaredFormula

Kokonaisvarianssi

Kokonaisvarianssi on vain kohteen varianssi, ja kohteen varianssi voidaan laskea tilastotieteen otosvarianssikaavalla ( on kohteen keskiarvo):

Kokonaisvaihtelu

Esimerkissä todellisten arvojen ja tavoitekeskiarvon (oranssit viivat) erot korotetaan toiseen potenssiin ja summataan, minkä jälkeen ne jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11,07.

Kokonaisvaihtelun kaavio

Selittämätön varianssi

Seuraavaksi lasketaan varianssi, jota malli ei selitä. Jos ennusteet olisivat täydellisiä, kaikki pisteet olisivat täsmälleen regressiosuoralla. Käytetään samaa varianssikaavaa, mutta korvataan ennustetuilla arvoilla.

Selittämätön varianssi

Tässä esimerkki visualisoinnin kanssa:

UnexplainedVariationGraph

Nyt tiedämme kaiken tarvittavan R-squared-arvon laskemiseen:

R2Example

Saimme R-squared-arvoksi 0,92, mikä on lähellä arvoa 1, joten mallimme on erinomainen. Lasketaan R-squared myös yhdelle toiselle mallille.

R2Example2

R-squared on matalampi, koska malli alisovittaa dataa hieman.

R-squared Pythonissa

sm.OLS-luokka laskee R-squared-arvon puolestamme. Löydämme sen summary()-taulukosta täällä.

Yhteenveto

R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli yliopeta). summary()-luokan sm.OLS-tuloste sisältää R-squared-pistemäärän.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
some-alt