Sommario:
- Selezione per misure univariate
- Quando si utilizza una selezione univariata, è necessario decidere autonomamente quante variabili tenere: la selezione di avidità riduce automaticamente il numero di funzioni coinvolte in un modello di apprendimento sulla base del loro effettivo contributo al prestazione misurata dalla misura di errore.
Video: How to Build and Install Hadoop on Windows 2024
La selezione delle variabili corrette in Python può migliorare il processo di apprendimento nella scienza dei dati riducendo la quantità di rumore (inutile informazioni) che possono influenzare le stime dello studente. La selezione variabile, quindi, può ridurre efficacemente la varianza delle previsioni. Per coinvolgere solo le variabili utili nell'allenamento e tralasciare quelle ridondanti, puoi utilizzare queste tecniche:
-
Approccio univariato: Seleziona le variabili più correlate al risultato obiettivo.
-
Approccio avido o arretrato: Conserva solo le variabili che puoi rimuovere dal processo di apprendimento senza danneggiare le sue prestazioni.
Selezione per misure univariate
Se si decide di selezionare una variabile in base al suo livello di associazione con la sua destinazione, la classe SelectPercentile fornisce una procedura automatica per mantenere solo una determinata percentuale delle migliori caratteristiche associate. Le metriche disponibili per l'associazione sono
-
f_regression: usato solo per obiettivi numerici e basato su prestazioni di regressione lineare.
-
f_classif: usato solo per obiettivi categoriali e basato sul test statistico Analisi della varianza (ANOVA).
-
chi2: esegue la statistica chi-quadrato per obiettivi categoriali, che è meno sensibile alla relazione non lineare tra la variabile predittiva e il suo bersaglio.
Quando si valutano i candidati per un problema di classificazione, f_classif e chi2 tendono a fornire lo stesso insieme di variabili principali. È comunque una buona pratica testare le selezioni da entrambe le metriche dell'associazione.
Oltre all'applicazione di una selezione diretta delle associazioni percentili più elevate, SelectPercentile può anche classificare le variabili migliori per rendere più facile decidere a quale percentile escludere una funzione dalla partecipazione al processo di apprendimento. La classe SelectKBest è analoga nella sua funzionalità, ma seleziona le prime k variabili, dove k è un numero, non un percentile.
da sklearn. feature_selection importa SelectPercentile da sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Selector_f. fit (X, y) per n, s in zip (boston. feature_names, Selector_f. scores_): print 'F-score:% 3. 2ft per feature% s '% (s, n) Punteggio F: 88. 15 per feature CRIM F-score: 75. 26 per feature ZN F-score: 153. 95 per feature INDUS F-score: 15. 97 per funzione CHAS F-score: 112. 59 per feature NOX F-score: 471. 85 per feature RM F-score: 83.F-score: 33. 58 per feature DIS F-score: 85. 91 per feature FF F-score: 141. 76 per feature F-score TAX: 175. 11 per feature PTRATIO F-score: 63. 05 per feature F F-score: 601. 62 per feature LSTAT
L'utilizzo del livello di output di associazione consente di scegliere le variabili più importanti per il proprio modello di apprendimento automatico, ma è necessario prestare attenzione a questi possibili problemi: > Alcune variabili con alta associazione potrebbero anche essere altamente correlate, introducendo informazioni duplicate, che agiscono come rumore nel processo di apprendimento.
-
Alcune variabili possono essere penalizzate, specialmente quelle binarie (variabili che indicano uno stato o una caratteristica usando il valore 1 quando è presente, 0 quando non lo è). Ad esempio, si noti che l'output mostra la variabile binaria CHAS come la meno associata alla variabile target (ma si sa dagli esempi precedenti che è influente dalla fase di convalida incrociata).
-
Il processo di selezione univariata può darti un vantaggio reale quando hai un numero enorme di variabili tra cui scegliere e tutti gli altri metodi diventano irrealizzabili dal punto di vista computazionale. La procedura migliore consiste nel ridurre il valore di SelectPercentile della metà o più delle variabili disponibili, ridurre il numero di variabili in un numero gestibile e conseguentemente consentire l'uso di un metodo più sofisticato e più preciso come una ricerca avida.
Utilizzo di una ricerca golosa
Quando si utilizza una selezione univariata, è necessario decidere autonomamente quante variabili tenere: la selezione di avidità riduce automaticamente il numero di funzioni coinvolte in un modello di apprendimento sulla base del loro effettivo contributo al prestazione misurata dalla misura di errore.
La classe RFECV, adattando i dati, può fornire informazioni sul numero di funzioni utili, segnalarle all'utente e trasformare automaticamente i dati X, mediante la trasformazione del metodo, in un set di variabili ridotto, come mostrato in il seguente esempio:
da sklearn. select_selection import RFECV selector = RFECV (stimatore = regressione, cv = 10, scoring = "mean_squared_error") selettore. fit (X, y) print ("Numero ottimale di funzioni:% d"% selettore. n_features_) Numero ottimale di funzioni: 6
È possibile ottenere un indice per l'insieme di variabili ottimali chiamando l'attributo support_ dal RFECV classe dopo averlo adattato.
stampa boston. feature_names [selettore. support_] ['CHAS "NOX" RM "DIS" PTRATIO "LSTAT']
Si noti che CHAS è ora incluso tra le funzionalità più predittive, che contrasta con il risultato della ricerca univariata.Il metodo RFECV può rilevare se una variabile è importante, indipendentemente dal fatto che sia binario, categoriale o numerico, perché valuta direttamente il ruolo svolto dalla caratteristica nella previsione.
Il metodo RFECV è sicuramente più efficiente rispetto all'approccio -univariato, perché considera le caratteristiche altamente correlate ed è ottimizzato per ottimizzare la misura di valutazione (che di solito non è Chi-quadrato o F-score). Essendo un processo avido, è computazionalmente impegnativo e può solo approssimare il miglior set di predittori.
Poiché RFECV impara il miglior insieme di variabili dai dati, la selezione può essere più adatta, che è ciò che accade con tutti gli altri algoritmi di apprendimento automatico. Provare RFECV su diversi campioni dei dati di allenamento può confermare le migliori variabili da utilizzare.