Ominaisuuksien Valinta
Pyyhkäise näyttääksesi valikon
Kun käytössä on useita piirteitä, ei usein tiedetä, mitkä niistä ovat merkityksellisiä. Malli voidaan kouluttaa kaikilla piirteillä, tarkistaa mitkä piirteet eivät ole hyödyllisiä, ja sitten kouluttaa uudelleen käyttäen vain vaikuttavia piirteitä.
Miksi poistaa piirteitä mallista?
Kohteeseen liittymättömän piirteen lisääminen tuo malliin kohinaa ja heikentää ennusteita. Useat hyödyttömät piirteet kasaavat kohinaa ja heikentävät mallin laatua entisestään.
Miten tunnistaa, ovatko piirteet hyviä vai huonoja?
OLS tarjoaa tilastollisia testejä koulutuksen aikana. Jokaiselle piirteelle annetaan t-testi, joka näkyy summary()-taulukossa ja osoittaa, vaikuttaako se merkittävästi kohteeseen.
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 on jokaisen piirteen p-arvo.
Lyhyesti: mitä pienempi p-arvo, sitä suurempi varmuus siitä, että muuttuja on merkittävä
Tilastotieteessä asetetaan merkitsevyystaso, yleensä 0,05. Jos muuttujan p-arvo ylittää tämän rajan, sitä ei pidetä merkittävänä.
Käytännössä hieman korkeammat p-arvot (hieman yli 0,05) voivat silti parantaa mallia. On turvallisempaa testata mallia sekä kyseisen muuttujan kanssa että ilman sitä. Jos p-arvo on kuitenkin hyvin korkea (>0,4), sen voi poistaa luottavaisin mielin.
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 muuttujat, 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.
Pienet tietoaineistot tuottavat usein korkeampia p-arvoja (0,05–0,2) jopa merkityksellisille muuttujille. P-arvot kuvaavat luottamusta: suuremmalla tietomäärällä on helpompi erottaa aidosti vaikuttavat muuttujat satunnaisista.
Kuinka poistaa huonot muuttujat?
Tarvitsee vain poistaa muuttujaan 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)
Ja sitten luodaan uusi OLS-objekti päivitetyn X_tilde:n avulla:
regression_model=sm.OLS(y, X_tilde)
1. Mitkä ominaisuuksista 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