Ominaisuuksien Valinta
Kun työskennellään useiden ominaisuuksien kanssa, ei usein tiedetä, mitkä niistä ovat merkityksellisiä. Malli voidaan kouluttaa kaikilla ominaisuuksilla, tarkistaa, mitkä ominaisuudet eivät ole hyödyllisiä, ja kouluttaa malli uudelleen käyttäen vain vaikuttavia ominaisuuksia.
Miksi ominaisuuksia poistetaan mallista?
Kohteeseen liittymättömän ominaisuuden lisääminen tuo malliin kohinaa ja heikentää ennusteita. Useat hyödyttömät ominaisuudet kasaavat kohinaa ja heikentävät mallin laatua entisestään.
Miten tunnistaa hyvät ja huonot ominaisuudet?
Arvioidaksemme, vaikuttavatko ominaisuudet merkittävästi kohteeseen, voimme laskea kullekin ominaisuudelle p-arvot. Matala p-arvo viittaa siihen, että ominaisuus on tilastollisesti merkittävä.
1234567891011121314151617import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
Lyhyesti sanottuna, mitä pienempi p-arvo, sitä suurempi varmuus siitä, että ominaisuus on merkittävä. Tyypillisesti p-arvoa, joka on alle 0,05, pidetään tilastollisesti merkitsevänä.
Yllä olevassa esimerkissä:
Father: (erittäin pieni, erittäin merkitsevä)Mother: (hyvin pieni, erittäin merkitsevä)
Molemmat ominaisuudet ovat hyviä ennustajia kohteelle.
Tilastotieteessä asetetaan merkitsevyystaso, yleensä 0,05. Jos ominaisuuden 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 hyödyttää mallia. On turvallisempaa testata mallia sekä ominaisuuden kanssa että ilman sitä. Mutta jos p-arvo on 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 ominaisuudet, joiden p-arvo on > 0,05, saamme alla olevan tuloksen (vasemmalla).
Jopa visuaalisesti voimme havaita, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.
Pienet aineistot tuottavat usein korkeampia p-arvoja (0,05–0,2) jopa merkityksellisille piirteille. P-arvot kuvaavat luottamusta: suuremmalla aineistolla on helpompi erottaa aidosti vaikuttavat piirteet satunnaisesta kohinasta.
Kuinka poistaa huonot piirteet?
Sinun tarvitsee vain poistaa piirteeseen liittyvä sarake X_tilde:sta. Tämä onnistuu seuraavalla koodilla:
X_tilde = X_tilde.drop(___, axis=1)
Esimerkiksi sarakkeiden 'const' ja 'Mother' poistamiseksi käytetään:
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
Mahtavaa!
Completion arvosana parantunut arvoon 3.33
Ominaisuuksien Valinta
Pyyhkäise näyttääksesi valikon
Kun työskennellään useiden ominaisuuksien kanssa, ei usein tiedetä, mitkä niistä ovat merkityksellisiä. Malli voidaan kouluttaa kaikilla ominaisuuksilla, tarkistaa, mitkä ominaisuudet eivät ole hyödyllisiä, ja kouluttaa malli uudelleen käyttäen vain vaikuttavia ominaisuuksia.
Miksi ominaisuuksia poistetaan mallista?
Kohteeseen liittymättömän ominaisuuden lisääminen tuo malliin kohinaa ja heikentää ennusteita. Useat hyödyttömät ominaisuudet kasaavat kohinaa ja heikentävät mallin laatua entisestään.
Miten tunnistaa hyvät ja huonot ominaisuudet?
Arvioidaksemme, vaikuttavatko ominaisuudet merkittävästi kohteeseen, voimme laskea kullekin ominaisuudelle p-arvot. Matala p-arvo viittaa siihen, että ominaisuus on tilastollisesti merkittävä.
1234567891011121314151617import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
Lyhyesti sanottuna, mitä pienempi p-arvo, sitä suurempi varmuus siitä, että ominaisuus on merkittävä. Tyypillisesti p-arvoa, joka on alle 0,05, pidetään tilastollisesti merkitsevänä.
Yllä olevassa esimerkissä:
Father: (erittäin pieni, erittäin merkitsevä)Mother: (hyvin pieni, erittäin merkitsevä)
Molemmat ominaisuudet ovat hyviä ennustajia kohteelle.
Tilastotieteessä asetetaan merkitsevyystaso, yleensä 0,05. Jos ominaisuuden 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 hyödyttää mallia. On turvallisempaa testata mallia sekä ominaisuuden kanssa että ilman sitä. Mutta jos p-arvo on 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 ominaisuudet, joiden p-arvo on > 0,05, saamme alla olevan tuloksen (vasemmalla).
Jopa visuaalisesti voimme havaita, että malli, jossa on vakio (oikealla), on parempi, joten sitä ei kannata poistaa mallista.
Pienet aineistot tuottavat usein korkeampia p-arvoja (0,05–0,2) jopa merkityksellisille piirteille. P-arvot kuvaavat luottamusta: suuremmalla aineistolla on helpompi erottaa aidosti vaikuttavat piirteet satunnaisesta kohinasta.
Kuinka poistaa huonot piirteet?
Sinun tarvitsee vain poistaa piirteeseen liittyvä sarake X_tilde:sta. Tämä onnistuu seuraavalla koodilla:
X_tilde = X_tilde.drop(___, axis=1)
Esimerkiksi sarakkeiden 'const' ja 'Mother' poistamiseksi käytetään:
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!