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

bookMittarit

Mallia rakentaessa on tärkeää mitata sen suorituskykyä.
Tarvitsemme malliin liitetyn pistemäärän, joka kuvaa tarkasti, kuinka hyvin se sopii aineistoon. Tätä pistemäärää kutsutaan metriksi, ja saatavilla on lukuisia erilaisia mittareita.
Tässä luvussa keskitymme yleisimmin käytettyihin mittareihin.

Käytämme seuraavaa merkintätapaa:

Olemme jo tutustuneet yhteen metriikkaan, SSR (Sum of Squared Residuals), jota minimoimme optimaalisten parametrien löytämiseksi.
Merkintätavallamme SSR:n kaava voidaan esittää seuraavasti:

tai yhtä lailla:

Tämä metriikka soveltui hyvin mallien vertailuun, kun havaintojen määrä oli sama. Se ei kuitenkaan anna käsitystä siitä, kuinka hyvin malli suoriutuu. Tässä syy:
Oletetaan, että sinulla on kaksi mallia eri harjoitusaineistoilla (kuvassa alla).

Voit huomata, että ensimmäinen malli sopii hyvin, mutta sillä on silti korkeampi SSR kuin toisella mallilla, joka visuaalisesti sopii aineistoon huonommin. Tämä johtuu vain siitä, että ensimmäisessä mallissa on huomattavasti enemmän havaintoja, joten summa on suurempi, mutta keskimäärin ensimmäisen mallin residuaalit ovat pienempiä. Siksi neliöityjen residuaalien keskiarvon käyttäminen metriikkana kuvaisi mallia paremmin. Juuri tätä tarkoittaa Mean Squared Error (MSE).

MSE

tai yhtä lailla:

MSE-metriikan laskemiseen Pythonilla voit käyttää NumPyn funktioita:

mse = np.mean((y_true-y_pred)**2)

Tai voit käyttää Scikit-learnin mean_squared_error() -metodia:

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

Missä y_true on taulukko todellisista tavoitearvoista ja y_pred on taulukko samoille piirteille ennustetuista tavoitearvoista.

Ongelma on, että virhe esitetään neliöitynä. Esimerkiksi, jos mallin MSE talojen ennustamisessa on 49 dollaria². Olemme kiinnostuneita hinnasta, emme hinnan neliöstä, kuten MSE antaa, joten haluamme ottaa MSE:n neliöjuuren ja saada 7 dollaria. Nyt meillä on metriikka, jonka yksikkö on sama kuin ennustetulla arvolla. Tätä metriikkaa kutsutaan nimellä Root Mean Squared Error (RMSE).

RMSE

RMSE-metriikan laskemiseen Pythonilla voit käyttää NumPyn funktioita:

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Tai voit käyttää Scikit-learnin mean_squared_error()-metodia parametrilla squared=False:

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

SSR:ssä residuaalit korotettiin toiseen potenssiin merkin poistamiseksi. Toinen lähestymistapa on ottaa residuaalien itseisarvot korottamisen sijaan. Tämä on Mean Absolute Errorin (MAE) perusajatus.

tai yhtä lailla

Se on sama kuin MSE, mutta jäännösten neliöimisen sijaan otetaan niiden itseisarvot.

Vaikka MAE on samankaltainen kuin MSE, koska se käyttää jäännösten itseisarvoja, se on herkempi poikkeaville arvoille, sillä se ei korosta suuria virheitä yhtä voimakkaasti kuin MSE. Tämän vuoksi MAE on usein parempi valinta, kun aineistossa on poikkeavia havaintoja, koska sen arvo ei kasva suhteettomasti muutaman äärimmäisen virheen vuoksi.

MAE-metriikan laskemiseen Pythonilla voi käyttää NumPyn funktioita:

mae = np.mean(np.fabs(y_true-y_pred))

Tai voit käyttää Scikit-learnin mean_absolute_error() -metodia:

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

Parametrien valintaan käytettiin SSR-metriikkaa. Tämä johtui siitä, että se soveltui hyvin matemaattisiin laskelmiin ja mahdollisti normaalin yhtälön johtamisen. Mallien vertailuun voidaan kuitenkin käyttää mitä tahansa muuta metriikkaa.

Note
Huomio

Mallien vertailussa SSR, MSE ja RMSE valitsevat aina identtisesti, mikä malli on parempi ja mikä huonompi. MAE voi joskus suosia eri mallia kuin SSR/MSE/RMSE, koska nämä rankaisevat suuria residuaaleja huomattavasti enemmän. Yleensä kannattaa valita yksi metriikka etukäteen ja keskittyä sen minimointiin.

Nyt voit varmasti todeta, että toinen malli on parempi, koska kaikki sen metriikat ovat pienempiä. Kuitenkin pienemmät metriikat eivät aina tarkoita, että malli on parempi.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Awesome!

Completion rate improved to 5.26

bookMittarit

Pyyhkäise näyttääksesi valikon

Mallia rakentaessa on tärkeää mitata sen suorituskykyä.
Tarvitsemme malliin liitetyn pistemäärän, joka kuvaa tarkasti, kuinka hyvin se sopii aineistoon. Tätä pistemäärää kutsutaan metriksi, ja saatavilla on lukuisia erilaisia mittareita.
Tässä luvussa keskitymme yleisimmin käytettyihin mittareihin.

Käytämme seuraavaa merkintätapaa:

Olemme jo tutustuneet yhteen metriikkaan, SSR (Sum of Squared Residuals), jota minimoimme optimaalisten parametrien löytämiseksi.
Merkintätavallamme SSR:n kaava voidaan esittää seuraavasti:

tai yhtä lailla:

Tämä metriikka soveltui hyvin mallien vertailuun, kun havaintojen määrä oli sama. Se ei kuitenkaan anna käsitystä siitä, kuinka hyvin malli suoriutuu. Tässä syy:
Oletetaan, että sinulla on kaksi mallia eri harjoitusaineistoilla (kuvassa alla).

Voit huomata, että ensimmäinen malli sopii hyvin, mutta sillä on silti korkeampi SSR kuin toisella mallilla, joka visuaalisesti sopii aineistoon huonommin. Tämä johtuu vain siitä, että ensimmäisessä mallissa on huomattavasti enemmän havaintoja, joten summa on suurempi, mutta keskimäärin ensimmäisen mallin residuaalit ovat pienempiä. Siksi neliöityjen residuaalien keskiarvon käyttäminen metriikkana kuvaisi mallia paremmin. Juuri tätä tarkoittaa Mean Squared Error (MSE).

MSE

tai yhtä lailla:

MSE-metriikan laskemiseen Pythonilla voit käyttää NumPyn funktioita:

mse = np.mean((y_true-y_pred)**2)

Tai voit käyttää Scikit-learnin mean_squared_error() -metodia:

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

Missä y_true on taulukko todellisista tavoitearvoista ja y_pred on taulukko samoille piirteille ennustetuista tavoitearvoista.

Ongelma on, että virhe esitetään neliöitynä. Esimerkiksi, jos mallin MSE talojen ennustamisessa on 49 dollaria². Olemme kiinnostuneita hinnasta, emme hinnan neliöstä, kuten MSE antaa, joten haluamme ottaa MSE:n neliöjuuren ja saada 7 dollaria. Nyt meillä on metriikka, jonka yksikkö on sama kuin ennustetulla arvolla. Tätä metriikkaa kutsutaan nimellä Root Mean Squared Error (RMSE).

RMSE

RMSE-metriikan laskemiseen Pythonilla voit käyttää NumPyn funktioita:

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Tai voit käyttää Scikit-learnin mean_squared_error()-metodia parametrilla squared=False:

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

SSR:ssä residuaalit korotettiin toiseen potenssiin merkin poistamiseksi. Toinen lähestymistapa on ottaa residuaalien itseisarvot korottamisen sijaan. Tämä on Mean Absolute Errorin (MAE) perusajatus.

tai yhtä lailla

Se on sama kuin MSE, mutta jäännösten neliöimisen sijaan otetaan niiden itseisarvot.

Vaikka MAE on samankaltainen kuin MSE, koska se käyttää jäännösten itseisarvoja, se on herkempi poikkeaville arvoille, sillä se ei korosta suuria virheitä yhtä voimakkaasti kuin MSE. Tämän vuoksi MAE on usein parempi valinta, kun aineistossa on poikkeavia havaintoja, koska sen arvo ei kasva suhteettomasti muutaman äärimmäisen virheen vuoksi.

MAE-metriikan laskemiseen Pythonilla voi käyttää NumPyn funktioita:

mae = np.mean(np.fabs(y_true-y_pred))

Tai voit käyttää Scikit-learnin mean_absolute_error() -metodia:

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

Parametrien valintaan käytettiin SSR-metriikkaa. Tämä johtui siitä, että se soveltui hyvin matemaattisiin laskelmiin ja mahdollisti normaalin yhtälön johtamisen. Mallien vertailuun voidaan kuitenkin käyttää mitä tahansa muuta metriikkaa.

Note
Huomio

Mallien vertailussa SSR, MSE ja RMSE valitsevat aina identtisesti, mikä malli on parempi ja mikä huonompi. MAE voi joskus suosia eri mallia kuin SSR/MSE/RMSE, koska nämä rankaisevat suuria residuaaleja huomattavasti enemmän. Yleensä kannattaa valita yksi metriikka etukäteen ja keskittyä sen minimointiin.

Nyt voit varmasti todeta, että toinen malli on parempi, koska kaikki sen metriikat ovat pienempiä. Kuitenkin pienemmät metriikat eivät aina tarkoita, että malli on parempi.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1
some-alt