Selezione funzionalità vs Estrazione funzionalità. Quale usare quando?


16

L'estrazione e la selezione delle caratteristiche riducono sostanzialmente la dimensionalità dei dati, ma l'estrazione delle caratteristiche rende anche i dati più separabili, se ho ragione.

Quale tecnica sarebbe preferita rispetto alle altre e quando?

Stavo pensando, poiché la selezione delle funzionalità non modifica i dati originali e le sue proprietà, suppongo che userete la selezione delle funzionalità quando è importante che le funzionalità su cui vi state allenando rimangano invariate. Ma non riesco a immaginare perché vorresti qualcosa del genere ..

Risposte:


18

Aggiungendo alla risposta data da Toros,

Questi (vedi sotto i punti elenco) tre sono abbastanza simili ma con sottili differenze - :( conciso e facile da ricordare)

  • estrazione delle caratteristiche e ingegneria delle caratteristiche : trasformazione di dati grezzi in caratteristiche adatte alla modellazione;

  • trasformazione delle caratteristiche : trasformazione dei dati per migliorare l'accuratezza dell'algoritmo;

  • selezione funzionalità : rimozione di funzioni non necessarie.

Solo per aggiungere un esempio dello stesso,

Estrazione e ingegneria delle caratteristiche (possiamo estrarre qualcosa da loro)

  • Testi (ngram, word2vec, tf-idf ecc)
  • Immagini (CNN'S, testi, domande e risposte)
  • Dati geospaziali (lat, long etc)
  • Data e ora (giorno, mese, settimana, anno, a rotazione)
  • Serie storiche, web, ecc
  • Tecniche di riduzione dimensionale (PCA, SVD, facce di Eigen ecc.)
  • Forse possiamo usare anche il clustering (DBSCAN ecc.)
  • .....(E molti altri)

Trasformazioni di funzioni (trasformandole in modo sensato)

  • Normalizzazione e modifica della distribuzione (ridimensionamento)
  • interazioni
  • Riempimento dei valori mancanti (riempimento mediano ecc.)
  • .....(E molti altri)

Selezione funzionalità (creazione del modello su queste funzionalità selezionate)

  • Approcci statistici
  • Selezione per modellazione
  • Ricerca griglia
  • Convalida incrociata
  • .....(E molti altri)

Spero che sia di aiuto...

Guarda i link condivisi da altri. Sono abbastanza carini ...


bel modo di rispondere a +1 per quello.
Toros91

Complimenti a questa comunità .. Imparando molto da essa ..
Aditya,

1
Vero quell'uomo, sono un membro da ottobre 2017. Ho imparato molte cose. Spero che sia lo stesso anche per te. Ho letto le tue risposte, sono buone. BtW scusami per la cosa che hai passato su SO. Non riuscivo a vedere tutto, ma mentre Neil Slater diceva bene che hai mantenuto la calma fino alla fine. Continuate così! Abbiamo ancora molta strada da fare. :)
Toros91

Qual è l'ordine in cui questi dovrebbero essere elaborati? Oltre alla pulizia e alla suddivisione dei dati. Quale dei 5 è il primo passo?
technazi,

La suddivisione dei dati viene effettuata alla fine quando ci si assicura che i dati siano pronti per essere inviati per la modellazione ... E imho non esiste tale ordinamento per le cose sopra menzionate perché si sovrappongono parecchie volte (estrazione delle funzionalità, ingegneria delle funzionalità, Trasformazione delle funzionalità.) Ma la selezione delle funzionalità viene sicuramente eseguita dopo aver suddiviso i dati in un treno come convalida, a condizione che si stiano utilizzando la metrica dei modelli o qualcosa di equivalente in un set di dati di convalida (per misurarne le prestazioni) per la convalida incrociata o qualcosa di equivalente, è possibile iniziare in modo iterativo cadere le colonne e vedere imp colsorimp
Aditya,

5

Come ha detto Aditya, ci sono 3 termini relativi alle funzionalità che a volte sono confusi tra loro. Proverò a dare una spiegazione sommaria a ciascuno di essi:

  • Estrazione delle funzionalità : generazione di funzionalità da dati che sono in un formato difficile da analizzare direttamente / che non sono direttamente comparabili (ad esempio immagini, serie temporali, ecc.) Nell'esempio di una serie temporale, alcune semplici funzionalità potrebbero essere per esempio: lunghezza delle serie temporali, periodo, valore medio, std, ecc.
  • Trasformazione delle funzionalità : trasformazione delle funzionalità esistenti per crearne di nuove basate su quelle vecchie. Una tecnica molto diffusa per la riduzione della dimensionalità è l'analisi delle componenti principali (pca) che utilizza alcune trasformazioni ortogonali per produrre un insieme di variabili linearmente non correlate basate sull'insieme iniziale di variabili.
  • Selezione funzionalità: selezione delle funzionalità con la massima "importanza" / influenza sulla variabile target, da un set di funzionalità esistenti. Questo può essere fatto con varie tecniche: ad es. Regressione lineare, alberi decisionali, calcolo di pesi "importanti" (ad es. Punteggio di Fisher, rilievo F)

Se l'unica cosa che si desidera ottenere è la riduzione della dimensionalità in un set di dati esistente, è possibile utilizzare la trasformazione o i metodi di selezione delle caratteristiche. Ma se hai bisogno di conoscere l'interpretazione fisica delle funzionalità che identifichi come "importanti" o stai cercando di limitare la quantità di dati che devono essere raccolti per la tua analisi (hai bisogno di tutto il set iniziale di funzionalità per la trasformazione delle funzionalità), quindi solo la selezione delle funzionalità può funzionare.

Puoi trovare maggiori dettagli sulla selezione delle funzioni e sulla riduzione dimensionale nei seguenti link:


4

Penso che siano 2 cose diverse,

Iniziamo con Selezione funzionalità :

Questa tecnica viene utilizzata per selezionare le funzionalità che spiegano la maggior parte della variabile target (ha una correlazione con la variabile target). Questo test viene eseguito appena prima che il modello venga applicato ai dati.

Per spiegarlo meglio, facciamo un esempio: ci sono 10 funzioni e 1 variabile target, 9 funzioni spiegano il 90% della variabile target e 10 funzioni insieme spiegano il 91% della variabile target. Quindi la variabile 1 non sta facendo molta differenza, quindi tendi a rimuoverla prima della modellazione (è anche soggettiva per il business). Posso anche essere chiamato come Predictor Importance.

Ora parliamo di Estrazione funzioni ,

Che viene utilizzato in Apprendimento senza supervisione, estrazione di contorni in immagini, estrazione di Bi-grammi da un testo, estrazione di fonemi dalla registrazione di testo parlato. Quando non sai nulla dei dati come nessun dizionario di dati, troppe funzionalità significa che i dati non sono in un formato comprensibile. Quindi prova ad applicare questa tecnica per ottenere alcune funzionalità che spiegano la maggior parte dei dati. L'estrazione delle caratteristiche comporta una trasformazione delle caratteristiche, che spesso non è reversibile perché alcune informazioni vengono perse nel processo di riduzione della dimensionalità.

È possibile applicare Estrazione funzionalità sui dati forniti per estrarre funzionalità e quindi applicare Selezione funzionalità rispetto alla variabile di destinazione per selezionare il sottoinsieme che può aiutare a creare un modello valido con buoni risultati.

puoi passare attraverso questi Link-1 , Link-2 per una migliore comprensione.

possiamo implementarli in R, Python, SPSS.

fammi sapere se hai bisogno di ulteriori chiarimenti.


3

I due sono molto diversi: la selezione delle caratteristiche riduce effettivamente le dimensioni, ma l'estrazione delle caratteristiche aggiunge dimensioni calcolate da altre caratteristiche.

Per i dati del pannello o delle serie temporali, uno di solito ha la variabile datetime e non si desidera addestrare la variabile dipendente alla data stessa poiché non si verificheranno in futuro. Quindi dovresti eliminare il datetime: eliminazione delle funzionalità.

D'altra parte, il giorno della settimana o del fine settimana può essere molto rilevante, quindi è necessario calcolare lo stato del giorno della settimana dal datetime: estrazione delle funzionalità.


0

Una parte fondamentale del successo di un progetto di Machine Learning è trovare una buona serie di funzioni su cui allenarsi. Questo processo, chiamato feature engineering, prevede:

• Selezione funzionalità: selezione delle funzionalità più utili su cui allenarsi tra le funzionalità esistenti.
• Estrazione delle caratteristiche: combinando le caratteristiche esistenti per produrne una più utile (come abbiamo visto in precedenza, gli algoritmi di riduzione della dimensionalità possono aiutare).
• Creazione di nuove funzionalità raccogliendo nuovi dati

Citando: "Un apprendimento automatico con SciKit-Learn, Keras & Tensorflow - Aurelien Geron"

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.