Ominaisuuksien Valinta
Monissa tehtävissä sinulla voi olla useita piirteitä, joiden hyödyllisyydestä et ole varma. Onneksi voit kouluttaa mallin kaikilla piirteillä, tarkastella mitkä eivät ole vaikuttavia, ja sitten 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 ohella 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:
123456789import 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
Kiinnostuksen kohteena ovat kunkin muuttujan p-arvot.
Lyhyesti: mitä pienempi p-arvo, sitä suurempi varmuus siitä, että muuttuja on merkityksellinen.
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, pidetään ominaisuutta merkityksettömänä.
Käytännössä kuitenkin ominaisuudet, joiden p-arvo on hieman yli 0.05, voivat myös parantaa mallia. Siksi on parempi kokeilla mallia sekä kyseisen ominaisuuden kanssa että ilman sitä, sen sijaan että poistaisi sen välittömästi mallista, ellei p-arvo ole todella korkea (>0.4). Tällöin ominaisuuden voi poistaa turvallisesti.
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 pelkästään visuaalisesti voimme todeta, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.
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?
Sinun 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ä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 5.26
Ominaisuuksien Valinta
Pyyhkäise näyttääksesi valikon
Monissa tehtävissä sinulla voi olla useita piirteitä, joiden hyödyllisyydestä et ole varma. Onneksi voit kouluttaa mallin kaikilla piirteillä, tarkastella mitkä eivät ole vaikuttavia, ja sitten 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 ohella 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:
123456789import 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
Kiinnostuksen kohteena ovat kunkin muuttujan p-arvot.
Lyhyesti: mitä pienempi p-arvo, sitä suurempi varmuus siitä, että muuttuja on merkityksellinen.
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, pidetään ominaisuutta merkityksettömänä.
Käytännössä kuitenkin ominaisuudet, joiden p-arvo on hieman yli 0.05, voivat myös parantaa mallia. Siksi on parempi kokeilla mallia sekä kyseisen ominaisuuden kanssa että ilman sitä, sen sijaan että poistaisi sen välittömästi mallista, ellei p-arvo ole todella korkea (>0.4). Tällöin ominaisuuden voi poistaa turvallisesti.
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 pelkästään visuaalisesti voimme todeta, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.
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?
Sinun 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ä.
Kiitos palautteestasi!