Piirteiden 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.
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ä.
1234567891011121314151617181920212223242526import 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))
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.
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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Piirteiden 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.
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ä.
1234567891011121314151617181920212223242526import 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))
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.
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.
Kiitos palautteestasi!