Sklearn -funksjonsvalg

Sklearn -funksjonsvalg
Den beste teknikken for å løse et maskinlæringsproblem er å starte med et datasett, utføre en grundig EDA på det og forstå mange til de fleste av de viktigste egenskapene til prediktorene før aktivt treningsmodeller på disse variablene. Imidlertid er det ikke alltid mulig å gjøre dette. Noen ganger krever du en automatisert tilnærming for å velge et passende undergruppe av data siden datasettet inkluderer for mange variabler. Lignende teknikker som finnes i Sklearn -biblioteket er diskutert i denne artikkelen.

Hva er funksjonsvalg?

Funksjonsvalgsprosessen innebærer å redusere antall prediktorvariabler som brukes i modellene du oppretter. For eksempel bør din første tilbøyelighet være å velge modellen med færre variabler når den presenteres med to modeller med samme eller nesten identiske poengsum. Men sistnevnte modell har flere variabler. Denne modellen er mindre sannsynlig å være lekker, lettere å løpe og enklere å forstå og trene. Det kommer lett som en del av modellbyggingsprosessen for å stille antall parametere i en modell, som er en naturlig komponent i datavitenskap i praksis. Å velge funksjoner er først og fremst en manuell prosedyre, selv når det er få funksjoner, eller du har tid til å sitte og tenke på dem. Automatisert eller halvautomatet funksjonsvalg kan fremskynde prosesser i situasjoner når det er for mange variabler, eller du ikke har mye tid.

Implementering av funksjonsvalg i Sklearn

Vi importerer først dataene ved hjelp av pandaer. Datasettet finner du her.

Importer pandaer som PD
df = pd.read_csv ('iris.CSV ')
df = df.slipp ('id', akse = 1)
df.hode()

Produksjon

Sepallengthcm SepalWidthcm Petallengthcm PETALWIDTHCM Arter
0 5.1 3.5 1.4 0.2 Iris-Setosa
1 4.9 3.0 1.4 0.2 Iris-Setosa
2 4.7 3.2 1.3 0.2 Iris-Setosa
3 4.6 3.1 1.5 0.2 Iris-Setosa
4 5.0 3.6 1.4 0.2 Iris-Setosa

Variansterskelfunksjonsvalg

En variansterskel er en enkel metode for å fjerne funksjoner avhengig av variansen vi forventer for hver funksjon. Uten å vurdere noen data fra den avhengige variabelen, vurderer variansterskelfunksjonsvalget bare inngangsfunksjonene. Som et resultat er det bare effektivt for uovervåket modellering når funksjoner elimineres. Nedenfor er implementeringen av tilnærmingen:

Fra Sklearn.Feature_selection import variancethreshold
df = df.SELECT_DTYPES ('NUMMER')
Selector = VariancEthreshold (2)
velger.passform (df)
df.Kolonner [velger.få støtte()]

Produksjon

Indeks (['petallengthcm'], dtype = "objekt")

SelectKbest

En funksjonsvalgteknikk kalt Univariate Feature Selection er basert på den univariate statistiske testen. Grunnlaget for “SelectKbest” er kombinasjonen av en univariat statistisk test med K-Number-funksjonsvalget basert på den statistiske korrelasjonen mellom de avhengige og uavhengige variablene. Nedenfor er implementeringen av 'SelectKbest'.

X = df.slipp ('art', akse = 1)
y = df ['art']
Fra Sklearn.Feature_Selection Import SelectKbest, Mutual_info_regression
fra Sklearn Import forbehandling
Encoder = forbehandling.LabelEncoder ()
y = koder.fit_transform (y)
Selector = SelectKbest (Mutual_info_regression, K = 2)
velger.passform (x, y)
X.Kolonner [velger.få støtte()]

Produksjon

Indeks (['petallengthcm', 'petalWidthcm'], dtype = 'objekt')

Konklusjon

Vi diskuterte funksjonsvalgmetodene i Sklearn. Funksjonsvalg er viktig når vi jobber med mange funksjoner, og vi må slippe overflødige funksjoner for en bedre forståelse av dataene og bedre ytelse. Sklearn gir oss en 'Feature_Selection' -modul som brukes til å implementere denne teknikken.