Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Piirteiden Valinnan Perusteet | Piirteiden Suunnittelu Koneoppimista Varten
Datan Esikäsittely ja Ominaisuuksien Rakentaminen

bookPiirteiden Valinnan Perusteet

Ominaisuuksien valinta parantaa mallin suorituskykyä säilyttämällä vain olennaisimmat ominaisuudet, vähentämällä monimutkaisuutta ja ehkäisemällä ylisovittamista, joka johtuu epäolennaisista tai päällekkäisistä tiedoista.

Note
Määritelmä

Ominaisuuksien valinta tarkoittaa prosessia, jossa valitaan tietoaineistosta sellainen syötemuuttujien (features) osajoukko, joka on merkityksellisin ennustavan mallinnuksen kannalta.

Ominaisuuksien valintamenetelmiin kuuluvat manuaalinen tarkastelu ja automatisoidut tekniikat. Luokittelutehtävissä käytetään tilastollisia testejä ominaisuuksien pisteyttämiseen ja valitaan ne, jotka liittyvät vahvimmin kohdemuuttujaan.

Suosituimmat ominaisuuksien valintamenetelmät jaetaan kolmeen luokkaan:

  • Suodatinmenetelmät: Valitsevat ominaisuudet tilastollisten mittareiden, kuten korrelaatiokertoimien tai yksimuuttujatestausten perusteella, riippumatta koneoppimismallista;
  • Kääremenetelmät: Käyttävät ennustemallia arvioimaan eri ominaisuusyhdistelmiä, kuten rekursiivisessa ominaisuuksien eliminoinnissa (RFE), ja valitsevat osajoukon, joka tuottaa parhaan mallin suorituskyvyn;
  • Upotetut menetelmät: Suorittavat ominaisuuksien valinnan osana mallin koulutusprosessia, kuten Lasso-regularisoinnissa, joka automaattisesti poistaa vähemmän tärkeät ominaisuudet kutistamalla niiden kertoimet nollaan.

Jokainen menetelmä tasapainottaa laskennallisen kustannuksen, tulkittavuuden ja ennustetarkkuuden välillä.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

Tässä esimerkissä käytetään scikit-learn-kirjaston SelectKBest-menetelmää yhdessä f_classif-pisteytysfunktiolla viiden merkityksellisimmän ominaisuuden valitsemiseksi Titanic-aineistosta: pclass, sex, parch, fare ja embarked. Tämä menetelmä arvioi jokaisen ominaisuuden erikseen ANOVA F-arvojen avulla ja valitsee ne, joilla on korkeimmat pisteet. Menetelmä soveltuu luokittelutehtäviin, koska se keskittyy ominaisuuksiin, jotka parhaiten erottavat kohdeluokat toisistaan.

Note
Huomio

Liian monen, erityisesti epäolennaisen, ominaisuuden valitseminen voi johtaa ylisovittamiseen, jolloin malli toimii hyvin harjoitusaineistolla mutta huonosti uudella, näkemättömällä datalla. Huolellinen ominaisuuksien valinta auttaa vähentämään tätä riskiä ja tuottaa kestävämpiä malleja.

Ominaisuuksien valinta ei ainoastaan paranna tarkkuutta—se tekee myös malleistasi nopeampia ja helpommin tulkittavia. Keskittymällä vain tärkeimpiin ominaisuuksiin yksinkertaistat malleja ja vähennät riskiä oppia kohinaa datasta.

question mark

Mikä seuraavista väittämistä ominaisuuksien valinnasta on tosi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain why only 'sex' and 'fare' were selected as features in the output?

What are some other feature selection methods I could try?

How does SelectKBest with f_classif work in more detail?

Awesome!

Completion rate improved to 8.33

bookPiirteiden Valinnan Perusteet

Pyyhkäise näyttääksesi valikon

Ominaisuuksien valinta parantaa mallin suorituskykyä säilyttämällä vain olennaisimmat ominaisuudet, vähentämällä monimutkaisuutta ja ehkäisemällä ylisovittamista, joka johtuu epäolennaisista tai päällekkäisistä tiedoista.

Note
Määritelmä

Ominaisuuksien valinta tarkoittaa prosessia, jossa valitaan tietoaineistosta sellainen syötemuuttujien (features) osajoukko, joka on merkityksellisin ennustavan mallinnuksen kannalta.

Ominaisuuksien valintamenetelmiin kuuluvat manuaalinen tarkastelu ja automatisoidut tekniikat. Luokittelutehtävissä käytetään tilastollisia testejä ominaisuuksien pisteyttämiseen ja valitaan ne, jotka liittyvät vahvimmin kohdemuuttujaan.

Suosituimmat ominaisuuksien valintamenetelmät jaetaan kolmeen luokkaan:

  • Suodatinmenetelmät: Valitsevat ominaisuudet tilastollisten mittareiden, kuten korrelaatiokertoimien tai yksimuuttujatestausten perusteella, riippumatta koneoppimismallista;
  • Kääremenetelmät: Käyttävät ennustemallia arvioimaan eri ominaisuusyhdistelmiä, kuten rekursiivisessa ominaisuuksien eliminoinnissa (RFE), ja valitsevat osajoukon, joka tuottaa parhaan mallin suorituskyvyn;
  • Upotetut menetelmät: Suorittavat ominaisuuksien valinnan osana mallin koulutusprosessia, kuten Lasso-regularisoinnissa, joka automaattisesti poistaa vähemmän tärkeät ominaisuudet kutistamalla niiden kertoimet nollaan.

Jokainen menetelmä tasapainottaa laskennallisen kustannuksen, tulkittavuuden ja ennustetarkkuuden välillä.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

Tässä esimerkissä käytetään scikit-learn-kirjaston SelectKBest-menetelmää yhdessä f_classif-pisteytysfunktiolla viiden merkityksellisimmän ominaisuuden valitsemiseksi Titanic-aineistosta: pclass, sex, parch, fare ja embarked. Tämä menetelmä arvioi jokaisen ominaisuuden erikseen ANOVA F-arvojen avulla ja valitsee ne, joilla on korkeimmat pisteet. Menetelmä soveltuu luokittelutehtäviin, koska se keskittyy ominaisuuksiin, jotka parhaiten erottavat kohdeluokat toisistaan.

Note
Huomio

Liian monen, erityisesti epäolennaisen, ominaisuuden valitseminen voi johtaa ylisovittamiseen, jolloin malli toimii hyvin harjoitusaineistolla mutta huonosti uudella, näkemättömällä datalla. Huolellinen ominaisuuksien valinta auttaa vähentämään tätä riskiä ja tuottaa kestävämpiä malleja.

Ominaisuuksien valinta ei ainoastaan paranna tarkkuutta—se tekee myös malleistasi nopeampia ja helpommin tulkittavia. Keskittymällä vain tärkeimpiin ominaisuuksiin yksinkertaistat malleja ja vähennät riskiä oppia kohinaa datasta.

question mark

Mikä seuraavista väittämistä ominaisuuksien valinnasta on tosi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
some-alt