Piirteiden valintamenetelmät
Suodatinmenetelmät (varianssi, korrelaatio), wrapper-menetelmät (RFE) ja sisäiset menetelmät (L1-regularisointi).
Piirteiden valintamenetelmät on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Miksi piirteitä valitaan
Piirteiden valinta säilyttää vain hyödyllisimmät sarakkeet. Piirteiden vähäisempi määrä nopeuttaa koulutusta, vähentää ylisovittamista ja helpottaa tulkintaa. Kohinan poistaminen parantaa usein myös tarkkuutta.
Kolme menetelmäperhettä
Valintamenetelmät jakautuvat kolmeen ryhmään:
- Suodatinmenetelmät järjestävät piirteet tilastollisen tunnusluvun perusteella (nopeita, mallista riippumattomia)
- Wrapper-menetelmät hakevat osajoukkoja malleja kouluttamalla (hitaita, tarkkoja)
- Upotetut menetelmät tekevät valinnan mallin sovituksen aikana
VarianceThreshold
Yksinkertaisin suodatinmenetelmä: VarianceThreshold poistaa piirteet, joiden varianssi alittaa raja-arvon. Lähes vakioiset sarakkeet eivät sisällä tietoa.
from sklearn.feature_selection import VarianceThreshold
sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])SelectKBest ja f_classif
SelectKBest säilyttää K suurimman pistemäärän saanutta piirrettä. f_classif-funktion kanssa se käyttää ANOVA F -testiä, joka mittaa, kuinka vahvasti kukin piirre liittyy luokkamuuttujaan.
from sklearn.feature_selection import SelectKBest, f_classif
sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))Keskinäinen informaatio
mutual_info_classif mittaa kaikenlaista, myös epälineaarista, riippuvuutta piirteen ja kohdemuuttujan välillä. Toisin kuin F-testi, se havaitsee epälineaariset suhteet, joita ANOVA ei löydä.
from sklearn.feature_selection import SelectKBest, mutual_info_classif
sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)f_classif ja mutual_info: vertailu
f_classif on nopea ja havaitsee lineaarisia suhteita, kun taas mutual_info_classif on hitaampi mutta tunnistaa epälineaariset suhteet. Jos epäilet monimutkaisia riippuvuuksia, suosi keskinäistä informaatiota.
import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif
f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])Rekursiivinen piirteiden eliminointi
RFE on wrapper-menetelmä: se kouluttaa mallin, poistaa heikoimman piirteen ja toistaa tämän. Se käyttää mallin omaa tärkeysarvoa piirteiden järjestämiseen.
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)RFECV: määrän automaattinen valinta
RFECV lisää RFE:hen ristiinvalidoinnin, joten se löytää optimaalisen piirteiden lukumäärän validointipistemäärän perusteella kiinteän arvauksen sijaan.
from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier
rfecv = RFECV(
estimator=RandomForestClassifier(),
cv=5,
scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)SelectFromModel ja Lasso
Upotettu valinta: Lasso (L1) kutistaa merkityksettömien piirteiden kertoimet täsmälleen nollaan. SelectFromModel säilyttää sen jälkeen vain nollasta poikkeavat kertoimet.
from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso
sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])SelectFromModel ja puupohjaiset tärkeysarvot
SelectFromModel toimii myös minkä tahansa estimaattorin kanssa, joka tarjoaa ominaisuuden feature_importances_, kuten satunnaismetsien kanssa. Asettakaa threshold-arvoksi esimerkiksi "mean" tai "median".
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier
sel = SelectFromModel(
RandomForestClassifier(n_estimators=200),
threshold="median",
)
sel.fit(X, y)Menetelmän valinta
Aloittakaa edullisista suodatinmenetelmistä (VarianceThreshold, SelectKBest) ilmeisen turhan aineiston poistamiseksi. Käyttäkää upotettua SelectFromModel-menetelmää hyvän tasapainon saavuttamiseksi. Varatkaa RFECV tilanteisiin, joissa tarkkuus on tärkeintä ja laskentaresursseja on riittävästi.
Pikatesti
Testatkaa piirteiden valintaa koskevat tietonne.
Kertaus
Kertaus: Piirteiden valintaan kuuluu suodatinmenetelmiä (VarianceThreshold, SelectKBest yhdessä f_classif- tai mutual_info_classif-funktion kanssa), wrapper-menetelmiä (RFECV) ja upotettuja menetelmiä (SelectFromModel Lassolla tai puupohjaisilla tärkeysarvoilla). Suodatinmenetelmät ovat nopeimpia, kun taas RFECV on tarkin. Käyttäkää keskinäistä informaatiota epälineaarisiin suhteisiin.
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Piirteiden valintamenetelmät” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Piirteiden valintamenetelmät”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Piirteiden valintamenetelmät”?
Suodatinmenetelmät (varianssi, korrelaatio), wrapper-menetelmät (RFE) ja sisäiset menetelmät (L1-regularisointi). Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Piirteiden valintamenetelmät”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?
Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Piirteiden valintamenetelmät
- Interaktio- ja polynomipiirteiden luominen
- Kohdekoodaus ja edistynyt kategoristen muuttujien käsittely
- Automaattinen piirteiden suunnittelu Featuretoolsilla