È necessaria la selezione delle funzioni?


11

Vorrei eseguire un modello di apprendimento automatico come foresta casuale, aumento del gradiente o SVM sul mio set di dati. Ci sono più di 200 variabili predittive nel mio set di dati e le mie classi target sono una variabile binaria.

Devo eseguire la selezione delle funzioni prima dell'adattamento del modello? Influisce in modo significativo sulle prestazioni del modello o non c'è molta differenza se si adatta direttamente al modello utilizzando tutte le variabili predittive?


Quanto è grande il tuo set di dati? Se hai migliaia di campioni e 200 variabili predittive, è molto probabile che con un modello come Random Forests sarai già in grado di ottenere prestazioni piuttosto elevate. L'ulteriore selezione delle funzionalità migliorerà ulteriormente le prestazioni.
Archie,

@Archie Sì, la dimensione del mio set di dati è simile a quella menzionata. "Ulteriore selezione delle caratteristiche", intendi condurre la selezione delle caratteristiche prima del montaggio del modello e può favorire le prestazioni del modello?
LUSAQX,

Voglio dire, prima proverei tutte le funzionalità, Random Forests sarebbe un ottimo classificatore per cominciare. Se poi vuoi aumentare le prestazioni, guarderei ad esempio l' importanza delle funzionalità per selezionare le funzionalità più significative.
Archie,

Ok. Questo è quello che ho fatto finora. Proverò alcuni metodi di selezione delle funzionalità prima del fitting del modello per vedere se ci saranno miglioramenti entro quel momento.
LUSAQX,

Una breve risposta dalla mia recente pratica, la selezione delle funzionalità è necessaria per il confronto dei modelli. Alcuni algoritmi funzionerebbero meglio su alcune serie di funzionalità, mentre altri algoritmi su un'altra serie.
LUSAQX,

Risposte:


11

La selezione delle funzionalità potrebbe essere considerata una fase da evitare. È necessario dedicare del tempo al calcolo per rimuovere funzionalità e effettivamente perdere dati e i metodi che è necessario eseguire la selezione delle funzionalità non sono ottimali poiché il problema è NP-Complete . Usarlo non sembra un'offerta che non puoi rifiutare.

Quindi, quali sono i vantaggi del suo utilizzo?

  1. Molte funzioni e un basso rapporto campioni / caratteristiche introdurranno rumore nel set di dati. In tal caso è probabile che il tuo algoritmo di classificazione si adatti eccessivamente e ti dia una falsa sensazione di buone prestazioni.
  2. Ridurre il numero di funzioni ridurrà il tempo di esecuzione nelle fasi successive. Ciò a sua volta ti consentirà di utilizzare algoritmi di maggiore complessità, cercare più parametri iper o fare più valutazioni.
  3. Una serie più piccola di funzionalità è più comprensibile per l'uomo. Ciò ti consentirà di concentrarti sulle principali fonti di prevedibilità e di progettare funzioni più esatte. Se dovrai spiegare il tuo modello a un cliente, presenterai meglio un modello con 5 funzioni piuttosto che un modello con 200 funzioni.

Ora per il tuo caso specifico: ti consiglio di iniziare a calcolare le correlazioni tra le caratteristiche e il concetto. Anche le correlazioni informatiche tra tutte le funzionalità sono informative. Si noti che ci sono molti tipi di correlazioni utili (ad esempio, Pearson , informazioni reciproche ) e molti attributi che potrebbero influenzarli (ad esempio, scarsità, squilibrio del concetto). Esaminarli invece di andare alla cieca con un algoritmo di selezione delle funzionalità potrebbe farti risparmiare un sacco di tempo in futuro.

Non penso che avrai un sacco di problemi di tempo di esecuzione con il tuo set di dati. Tuttavia, il rapporto campioni / caratteristiche non è troppo elevato, pertanto potresti trarre vantaggio dalla selezione delle funzioni.

Scegli un classificatore di bassa complessità (ad es. Regressione lineare, un piccolo albero decisionale) e usalo come punto di riferimento. Provalo sul set di dati completo e su alcuni set di dati con un sottoinsieme delle funzionalità. Tale benchmark ti guiderà nell'uso della selezione delle funzionalità. Avrai bisogno di tale guida poiché ci sono molte opzioni (ad es. Il numero di funzioni da selezionare, l'algoritmo di selezione delle caratteristiche) e poiché l'obiettivo è di solito la previsione e non la selezione delle caratteristiche, quindi il feedback è almeno ad un passo.


Molte grazie. Ma per un classificatore non lineare come la foresta casuale, richiede anche le variabili predittive indipendenti l'una dall'altra? Immagino di no, ma potrebbe essere sbagliato. In che modo la correlazione guida la selezione delle funzionalità?
LUSAQX,

La foresta casuale è una raccolta di alberi che si adattano bene alla variabile dipendente. Questo perché da ogni nodo nella struttura ad albero, il set di dati è condizionato da tutte le variabili sopra di esso. Il problema è che l'albero che cresce è euristico, quindi la scelta della variabile sopra potrebbe non essere stata ottimale.
DaL,

La correlazione confronta solo coppie di variabili e quindi non può darti il ​​quadro completo. D'altra parte, ottieni il risultato in O (n ^ 2) e non in O (2 ^ n) ... La guida è di solito specifica per il set di dati, quindi trovo difficile spiegarlo in questo modo. Alcuni esempi sono la rimozione di variabili ridondanti (molto correlate ad altre variabili). Esaminare la forza della correlazione potrebbe indicare se è possibile utilizzare un modello piccolo o sarà necessario per utilizzare molti studenti deboli. Identificare un sottoinsieme non troppo correlato tra loro potrebbe indicare che il co-training sarà utile.
DaL,


0

Sì, la selezione delle funzionalità è uno dei compiti più cruciali per i problemi di apprendimento automatico, dopo aver eseguito il wrangling e la pulizia dei dati. puoi trovare le funzioni che implementano il processo di selezione delle caratteristiche usando l'importanza della funzione XGBOOST qui.

https://github.com/abhisheksharma4194/Machine-learning

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.