Indholdsfortegnelse:
- Valg af univariate measures
- Når du bruger et univariat valg, skal du selv bestemme, hvor mange variabler der skal holdes: Grådigt valg reducerer automatisk antallet af funktioner, der er involveret i en læringsmodel på grundlag af deres effektive bidrag til ydeevne målt ved fejlforanstaltningen.
Video: Computational Linguistics, by Lucas Freitas 2024
Valg af de rigtige variabler i Python kan forbedre læringsprocessen i datalogi ved at reducere mængden af støj (ubrugelig information), der kan påvirke elevens skøn. Variabelt valg kan derfor effektivt reducere forudsigelsens varians. For kun at inddrage de nyttige variabler i træning og forlade de overflødige, kan du bruge disse teknikker:
-
Univariate approach: Vælg de variabler, der er mest relaterede til målresultatet.
-
Greedy eller tilbagestående tilgang: Hold kun de variabler, du kan fjerne fra læringsprocessen uden at skade dens ydeevne.
Valg af univariate measures
Hvis du vælger en variabel med dets associeringsniveau med sit mål, giver klassen SelectPercentile en automatisk procedure til kun at holde en vis procentdel af de bedste tilknyttede funktioner. De tilgængelige beregninger for tilknytning er
-
f_regression: Anvendes kun til numeriske mål og baseret på lineær regressions ydeevne.
-
f_classif: Anvendes kun til kategoriske mål og baseret på Analys of Variance (ANOVA) statistisk test.
-
chi2: Udfører chi-firkantet statistikken for kategoriske mål, hvilket er mindre fornuftigt for det ikke-lineære forhold mellem den prædiktive variabel og dens mål.
Når man vurderer kandidater til et klassifikationsproblem, har f_classif og chi2 det samme sæt topvariabler. Det er stadig en god praksis at teste valgene fra både foreningsstatistikkerne.
Ud over at anvende et direkte udvalg af de øverste percentileforeninger, kan SelectPercentile også rangordne de bedste variabler for at gøre det nemmere at bestemme, hvilket percentil der skal udelukkes fra at deltage i læringsprocessen. Klassen SelectKBest er analog i dens funktionalitet, men den vælger de øverste k-variabler, hvor k er et tal, ikke en percentil.
fra sklearn. feature_selection import VælgPercentile fra sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Selector_f. fit (X, y) for n, s i zip (boston. feature_names, Selector_f. scores_): print 'F-score:% 3. 2ft for funktion% s '% (s, n) F-score: 88. 15 for funktion CRIM F-score: 75. 26 for funktion ZN F-score: 153. 95 for funktion INDUS F-score: 15. 97 for funktion funktion CHAS F-score: 112. 59 for funktion NOX F-score: 471. 85 for funktion RM F-score: 83.48 for funktion AGE F-score: 33. 58 for funktion DIS F-score: 85. 91 for funktion RAD F-score: 141. 76 for funktion TAX F-score: 175. 11 for funktion PTRATIO F-score: 63. 05 for funktion B F-score: 601. 62 for funktion LSTAT
Brug af niveauet for associeringsudgang hjælper dig med at vælge de vigtigste variabler til din maskinlæringsmodel, men du bør passe på disse mulige problemer: > Nogle variabler med høj tilknytning kan også være meget korrelerede og indføre duplikeret information, som virker som støj i læringsprocessen.
-
Visse variabler kan straffes, især binære (variabler, der angiver en status eller karakteristik ved hjælp af værdien 1, når den er til stede, 0, hvis den ikke er). For eksempel bemærke, at output viser den binære variabel CHAS som den mindste forbundet med målvariablen (men du ved fra tidligere eksempler, at den er indflydelsesrig fra krydsvalideringsfasen).
-
Den univariate udvælgelsesproces kan give dig en reel fordel, når du har et stort antal variabler at vælge imellem, og alle andre metoder bliver computationally uudviklede. Den bedste fremgangsmåde er at reducere værdien af SelectPercentile med halvdelen eller flere af de tilgængelige variabler, reducere antallet af variabler til et håndterbart nummer og dermed tillade brug af en mere sofistikeret og mere præcis metode som en grådig søgning.
Brug af en grådig søgning
Når du bruger et univariat valg, skal du selv bestemme, hvor mange variabler der skal holdes: Grådigt valg reducerer automatisk antallet af funktioner, der er involveret i en læringsmodel på grundlag af deres effektive bidrag til ydeevne målt ved fejlforanstaltningen.
RFECV-klassen, der passer til dataene, kan give dig oplysninger om antallet af nyttige funktioner, pege på dem og transformere automatisk X-dataene ved hjælp af metoden transformere til et reduceret variabelt sæt som vist i Følgende eksempel:
fra sklearn. feature_selection import RFECV selector = RFECV (estimator = regression, cv = 10, scoring = "mean_squared_error") vælger. fit (X, y) print ("Optimal antal funktioner:% d"% vælger. n_features_) Optimal antal funktioner: 6
Det er muligt at få et indeks til den optimale variabel, der er angivet ved at kalde attributten support_ fra RFECV klasse efter at du har passet den.
print boston. feature_names [vælgeren. support_] ['CHAS' NOX "RM" DIS "PTRATIO" LSTAT "]
Bemærk, at CHAS nu er inkluderet blandt de mest forudsigelige funktioner, hvilket står i kontrast til resultatet fra den univariate søgning. RFECV-metoden kan registrere, om en variabel er vigtigt, uanset om det er binært, kategorisk eller numerisk, fordi det direkte evaluerer den rolle, som funktionen spiller i forudsigelsen.
RFECV-metoden er bestemt mere effektiv sammenlignet med den -univariate tilgang, fordi den betragter stærkt korrelerede funktioner og er indstillet til at optimere evalueringsforanstaltningen (som normalt ikke er Chi-square eller F-score). Det er en grådig proces, det er beregningsorienteret og kan kun tilnærme det bedste sæt prædiktorer.
Da RFECV lærer det bedste sæt af variabler fra data, kan udvælgelsen overfit, hvilket er hvad der sker med alle andre maskinlæringsalgoritmer. Hvis du prøver RFECV på forskellige prøver af træningsdataene, kan du bekræfte de bedste variabler, du skal bruge.