Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ominaisuuksien Valinta | Monimuuttujainen Lineaarinen Regressio
Lineaarinen Regressio Pythonilla

bookOminaisuuksien Valinta

Monissa tehtävissä käytettävissä voi olla useita piirteitä, joiden hyödyllisyydestä ei ole varmuutta. Onneksi voit kouluttaa mallin kaikilla piirteillä, tarkastella, mitkä eivät ole vaikuttavia, ja kouluttaa mallin uudelleen vain vaikuttavilla piirteillä.

Miksi poistaa piirteitä mallista?

Jos lisäät malliin piirteen, jolla ei ole yhteyttä kohteeseen, se aiheuttaa malliin kohinaa ja heikentää ennustetta. Kun hyödyttömiä piirteitä on paljon, kohina kasautuu ja mallin suorituskyky heikkenee entisestään.

Miten tietää, ovatko piirteet hyviä vai huonoja?

Kuten jo tiedät, OLS-luokka laskee tilastollista tietoa koulutuksen aikana. Monien muiden asioiden lisäksi se suorittaa t-testin määrittääkseen, onko jokaisella piirteellä merkittävä vaikutus kohteeseen. Testin tulokset löytyvät summary()-taulukosta, kuten alla on esitetty:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Tässä olemme kiinnostuneita kunkin muuttujan p-arvosta.

Lyhyesti: mitä pienempi p-arvo, sitä suurempi varmuus siitä, että muuttuja on merkittävä.

Tilastotieteessä meidän tulee asettaa p-arvon kynnysarvo, jota kutsutaan merkitsevyystasoksi. Se asetetaan yleensä arvoon 0,05, ja kun p-arvo ylittää tämän merkitsevyystason, ominaisuutta ei pidetä merkittävänä.

Käytännössä kuitenkin ominaisuudet, joiden p-arvo on hieman yli 0,05, voivat usein parantaa mallia. Siksi on parempi kokeilla mallia sekä kyseisen ominaisuuden kanssa että ilman sitä, sen sijaan että poistaisi sen välittömästi, ellei p-arvo ole todella korkea (>0,4). Tällöin ominaisuuden voi poistaa turvallisesti.

Note
Huomio

p-arvo vaihtelee välillä 0–1, joten kun puhumme matalasta p-arvosta, tarkoitamme alle 0,05 ja korkea p-arvo tarkoittaa yleensä yli 0,3–0,5.

Esimerkissämme saimme p-arvot Äidin pituudelle ja vakiolle 0,087 ja 0,051. Jos poistamme ominaisuudet, joiden p-arvo on > 0,05, saamme alla olevan tuloksen (vasemmalla).

Jo visuaalisesti voidaan todeta, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.

Note
Huomio

On tavallista saada suhteellisen korkeita p-arvoja (0,05–0,2) merkittäville ominaisuuksille, kun aineisto on pieni. P-arvo ilmaisee luottamuksen siihen, että ominaisuus on merkittävä, ja on luonnollista, että mitä enemmän havaintoja on, sitä helpompi on erottaa merkittävät ominaisuudet huonoista.
Oletetaan, että sinulla on dataa, jonka mukaan 9/10 tuntemastasi pitkästä ihmisestä söi omenoita päivittäin. Voitko olla varma, että tämä liittyy asiaan? Mutta entä jos luku olisi 9000/10000? Se lisäisi luottamustasi.

Kuinka poistaa huonot ominaisuudet?

Tarvitsee vain poistaa ominaisuuteen liittyvä sarake X_tilde:sta. Tämä onnistuu seuraavalla koodilla:

X_tilde = X_tilde.drop(___, axis=1)

Esimerkiksi, jos haluat poistaa sarakkeet 'const' ja 'Mother', käytä seuraavaa:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Luo tämän jälkeen uusi OLS-olio päivitetyn X_tilde:n avulla:

regression_model=sm.OLS(y, X_tilde)

1. Mitkä ominaisuudet tulisi SÄILYTTÄÄ?

2. Valitse VÄÄRÄ väittämä.

question mark

Mitkä ominaisuudet tulisi SÄILYTTÄÄ?

Select the correct answer

question mark

Valitse VÄÄRÄ väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

What is a p-value and why is it important in feature selection?

How do I interpret the summary table from the OLS regression?

Can you explain how to decide which features to remove based on p-values?

Awesome!

Completion rate improved to 5.26

bookOminaisuuksien Valinta

Pyyhkäise näyttääksesi valikon

Monissa tehtävissä käytettävissä voi olla useita piirteitä, joiden hyödyllisyydestä ei ole varmuutta. Onneksi voit kouluttaa mallin kaikilla piirteillä, tarkastella, mitkä eivät ole vaikuttavia, ja kouluttaa mallin uudelleen vain vaikuttavilla piirteillä.

Miksi poistaa piirteitä mallista?

Jos lisäät malliin piirteen, jolla ei ole yhteyttä kohteeseen, se aiheuttaa malliin kohinaa ja heikentää ennustetta. Kun hyödyttömiä piirteitä on paljon, kohina kasautuu ja mallin suorituskyky heikkenee entisestään.

Miten tietää, ovatko piirteet hyviä vai huonoja?

Kuten jo tiedät, OLS-luokka laskee tilastollista tietoa koulutuksen aikana. Monien muiden asioiden lisäksi se suorittaa t-testin määrittääkseen, onko jokaisella piirteellä merkittävä vaikutus kohteeseen. Testin tulokset löytyvät summary()-taulukosta, kuten alla on esitetty:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Tässä olemme kiinnostuneita kunkin muuttujan p-arvosta.

Lyhyesti: mitä pienempi p-arvo, sitä suurempi varmuus siitä, että muuttuja on merkittävä.

Tilastotieteessä meidän tulee asettaa p-arvon kynnysarvo, jota kutsutaan merkitsevyystasoksi. Se asetetaan yleensä arvoon 0,05, ja kun p-arvo ylittää tämän merkitsevyystason, ominaisuutta ei pidetä merkittävänä.

Käytännössä kuitenkin ominaisuudet, joiden p-arvo on hieman yli 0,05, voivat usein parantaa mallia. Siksi on parempi kokeilla mallia sekä kyseisen ominaisuuden kanssa että ilman sitä, sen sijaan että poistaisi sen välittömästi, ellei p-arvo ole todella korkea (>0,4). Tällöin ominaisuuden voi poistaa turvallisesti.

Note
Huomio

p-arvo vaihtelee välillä 0–1, joten kun puhumme matalasta p-arvosta, tarkoitamme alle 0,05 ja korkea p-arvo tarkoittaa yleensä yli 0,3–0,5.

Esimerkissämme saimme p-arvot Äidin pituudelle ja vakiolle 0,087 ja 0,051. Jos poistamme ominaisuudet, joiden p-arvo on > 0,05, saamme alla olevan tuloksen (vasemmalla).

Jo visuaalisesti voidaan todeta, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.

Note
Huomio

On tavallista saada suhteellisen korkeita p-arvoja (0,05–0,2) merkittäville ominaisuuksille, kun aineisto on pieni. P-arvo ilmaisee luottamuksen siihen, että ominaisuus on merkittävä, ja on luonnollista, että mitä enemmän havaintoja on, sitä helpompi on erottaa merkittävät ominaisuudet huonoista.
Oletetaan, että sinulla on dataa, jonka mukaan 9/10 tuntemastasi pitkästä ihmisestä söi omenoita päivittäin. Voitko olla varma, että tämä liittyy asiaan? Mutta entä jos luku olisi 9000/10000? Se lisäisi luottamustasi.

Kuinka poistaa huonot ominaisuudet?

Tarvitsee vain poistaa ominaisuuteen liittyvä sarake X_tilde:sta. Tämä onnistuu seuraavalla koodilla:

X_tilde = X_tilde.drop(___, axis=1)

Esimerkiksi, jos haluat poistaa sarakkeet 'const' ja 'Mother', käytä seuraavaa:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Luo tämän jälkeen uusi OLS-olio päivitetyn X_tilde:n avulla:

regression_model=sm.OLS(y, X_tilde)

1. Mitkä ominaisuudet tulisi SÄILYTTÄÄ?

2. Valitse VÄÄRÄ väittämä.

question mark

Mitkä ominaisuudet tulisi SÄILYTTÄÄ?

Select the correct answer

question mark

Valitse VÄÄRÄ väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
some-alt