Che cos'è la riduzione della dimensionalità? Qual è la differenza tra la selezione delle funzioni e l'estrazione?


59

Da Wikipedia,

la riduzione della dimensionalità o la riduzione della dimensione è il processo di riduzione del numero di variabili casuali in esame e può essere suddiviso in selezione e estrazione delle caratteristiche.

Qual è la differenza tra la selezione e l'estrazione della funzione?

Qual è un esempio di riduzione della dimensionalità in un'attività di elaborazione del linguaggio naturale?

Risposte:


52

In poche parole:

  • selezione funzionalità: si seleziona un sottoinsieme del set di funzionalità originale; mentre
  • estrazione funzionalità: si crea un nuovo set di funzionalità dal set di funzionalità originale.

Esempi di estrazione di caratteristiche: estrazione di contorni in immagini, estrazione di digrammi da un testo, estrazione di fonemi dalla registrazione di testi parlati, ecc.

L'estrazione delle caratteristiche comporta una trasformazione delle caratteristiche, che spesso non è reversibile perché alcune informazioni vengono perse nel processo di riduzione della dimensionalità.


2
Entrambi rientrano nella categoria dell'ingegnerizzazione delle funzionalità in quanto implicano la creazione o la selezione manuale delle funzionalità. La riduzione della dimensionalità comporta in genere un cambiamento di base o qualche altra rappresentazione matematica dei dati
infuriaSloth

1
@ragingSloth, penso che il primo sia sicuramente la selezione delle funzionalità - e non l'ingegnerizzazione delle funzionalità. Mentre gli esempi di elaborazione di immagini e testo sembrano effettivamente essere ingegneria delle caratteristiche
Alexey Grigorev,

Per come l'ho trovata, per alcune estrazioni di funzionalità è ancora possibile ricostruire approssimativamente le dimensioni originali. Ma per la selezione delle funzionalità, non c'è ricostruzione, poiché hai rimosso le dimensioni inutili.
Bob,

18

La riduzione dimensionale è in genere la scelta di una base o di una rappresentazione matematica all'interno della quale è possibile descrivere la maggior parte ma non tutta la varianza all'interno dei propri dati, conservando in tal modo le informazioni pertinenti, riducendo al contempo la quantità di informazioni necessarie per rappresentarli. Ci sono una varietà di tecniche per fare questo incluso ma non limitato a PCA, ICAe Matrix Feature Factorization. Questi prenderanno i dati esistenti e li ridurranno ai componenti più discriminatori. Tutti ti consentono di rappresentare la maggior parte delle informazioni nel tuo set di dati con un numero minore di funzioni più discriminatorie.

Selezione funzionalità è la selezione manuale di funzioni che sono altamente discriminanti. Ciò ha molto più a che fare con l'ingegnerizzazione delle funzionalità che con l'analisi e richiede molto più lavoro da parte del data scientist. Richiede una comprensione di quali aspetti del set di dati sono importanti in qualunque previsione tu stia facendo e quali no. L'estrazione delle funzionalità di solito comporta la generazione di nuove funzionalità che sono composte di funzionalità esistenti. Entrambe queste tecniche rientrano nella categoria di ingegneria delle caratteristiche. In generale, la progettazione delle funzionalità è importante se si desidera ottenere i migliori risultati, in quanto comporta la creazione di informazioni che potrebbero non esistere nel set di dati e l'aumento del rapporto segnale-rumore.


2
Concordo principalmente, con una precisione: la selezione delle funzioni non deve essere eseguita manualmente, può essere automatica. Vedi ad esempio il metodo Lazo ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
jrouquie,

Sono d'accordo con la tua Dimensionality Reductionclausola ma differisco un po ' Feature Engineeringsull'uso - che da quello che ho visto è solo Feature Extraction : Feature Selectionè considerato separatamente. È solo una differenza nella terminologia.
Javavba,

7

Come in @damienfrancois, la selezione della funzione di risposta riguarda la selezione di un sottoinsieme di funzioni. Quindi in NLP si selezionerebbe un insieme di parole specifiche (il tipico in NLP è che ogni parola rappresenta una caratteristica con valore uguale alla frequenza della parola o qualche altro peso basato su TF / IDF o simili).

La riduzione dimensionale è l'introduzione del nuovo spazio delle funzioni in cui sono rappresentate le funzioni originali. Il nuovo spazio è di dimensione inferiore rispetto allo spazio originale. Nel caso del testo un esempio potrebbe essere il trucco di hashing in cui un pezzo di testo viene ridotto a un vettore di pochi bit (diciamo 16 o 32) o byte. La cosa sorprendente è che la geometria dello spazio viene preservata (dati abbastanza bit), quindi le distanze relative tra i documenti rimangono le stesse dello spazio originale, quindi è possibile distribuire tecniche di apprendimento automatico standard senza dover affrontare unbound (e un numero enorme) di) dimensioni trovate nel testo.


5

La selezione delle caratteristiche riguarda la scelta di alcune caratteristiche basate su alcuni punteggi statistici, ma l'estrazione delle caratteristiche sta usando tecniche per estrarre alcune informazioni di secondo livello dai dati, ad esempio frequenze interessanti di un segnale usando la trasformata di Fourier.

La riduzione della dimensionalità consiste nel trasformare i dati in uno spazio a bassa dimensione in cui i dati conservano la loro struttura euclidea ma non soffrono della maledizione della dimensionalità. Ad esempio, supponi di estrarre alcune caratteristiche delle parole da un set di dati in cui ogni documento può essere modellato come un punto nello spazio n-dimensionale e n è troppo grande (un esempio di giocattolo). In questo caso, molti algoritmi non funzionano in base alla distorsione della distanza dello spazio ad alta dimensione. Ora è necessario ridurre la dimensionalità selezionando la maggior parte delle caratteristiche informative o trasformandole in una varietà a bassa dimensione utilizzando metodi di riduzione della dimensionalità, ad esempio PCA, LLE, ecc.[x1,...,xn]


Tra le risposte disponibili, questa si abbina meglio a quella che ho visto in diversi team di Data Science e ML Platform
javadba,

3

Per completare la risposta di Damien, un esempio di riduzione della dimensionalità nella PNL è un modello di argomento , in cui si rappresenta il documento con un vettore che indica i pesi dei suoi argomenti costitutivi.



2

A1. Che cos'è la riduzione della dimensionalità: se si pensa ai dati in una matrice, dove le righe sono istanze e le colonne sono attributi (o caratteristiche), la riduzione della dimensionalità sta associando questa matrice di dati a una nuova matrice con meno colonne. Per la visualizzazione, se si considera ciascuna colonna-matrice (attributo) come una dimensione nello spazio delle caratteristiche, la riduzione della dimensionalità è la proiezione di istanze dallo spazio dimensionale superiore (più colonne) a uno spazio secondario dimensionale inferiore (meno colonne). La riduzione della dimensionalità è la proiezione del sottospazio L'obiettivo tipico di questa trasformazione è (1) preservare le informazioni nella matrice dei dati, riducendo al contempo la complessità computazionale; (2) migliorare la separabilità di diverse classi di dati.

A2. Riduzione della dimensionalità come selezione o estrazione di funzionalità: userò l'onnipresente set di dati Iris , che è probabilmente il "ciao mondo" della scienza dei dati. In breve, il set di dati di Iris ha 3 classi e 4 attributi (colonne). Illustrerò la selezione e l'estrazione delle funzionalità per il compito di ridurre la dimensionalità del set di dati Iris da 4 a 2.

Calcolo la co-varianza in coppia di questo set di dati usando la libreria in Python chiamata seaborn. Il codice è: sns.pairplot (iris, hue = "species", markers = ["o", "s", "D"]) La figura che ottengo è Trama di coppia di iris che posso selezionare la coppia di attributi (2 dimensioni) che forniscono la più grande separazione tra le 3 classi (specie) nel set di dati di Iris. Questo sarebbe un caso di selezione delle funzionalità.

Il prossimo è l'estrazione delle funzionalità. Qui sto proiettando lo spazio delle caratteristiche a 4 dimensioni di Iris su un nuovo sottospazio a 2 dimensioni, che non è asse allineato con lo spazio originale. Questi sono nuovi attributi. Si basano in genere sulla distribuzione nello spazio tridimensionale originale. Il metodo più popolare è l'analisi dei componenti principali, che calcola gli autovettori nello spazio originale. PCA utilizzando SVD Ovviamente, non siamo limitati a usare solo una proiezione lineare e globale su un sottospazio basato su autovettori. Possiamo usare anche metodi di proiezione non lineari. Ecco un esempio di PCA non lineare che utilizza reti neurali PCA non lineare che utilizza NN Vengono estratti gli attributi (dimensioni) nell'ultimo esempiodai 4 attributi originali usando le reti neurali. Puoi sperimentare tu stesso vari tipi di PCA per il set di dati dell'iride usando questo codice di metodi pca .

Riepilogo: sebbene i metodi di estrazione delle funzionalità possano apparire superiori nelle prestazioni rispetto alla selezione delle funzionalità, la scelta è basata sull'applicazione. Gli attributi dell'estrazione delle caratteristiche in genere perdono l'interpretazione fisica, che può o meno essere un problema in base all'attività da svolgere. Ad esempio, se stai progettando un'attività di raccolta dati molto costosa con sensori costosi e hai bisogno di risparmiare sugli attributi (numero di sensori diversi), vorresti raccogliere un piccolo campione pilota usando tutti i sensori disponibili e quindi selezionare quelli che sono i più informativi per l'attività di raccolta di big data.


1

Estratto dall'apprendimento automatico pratico con scikit-learn e Tensorflow

  1. Pulizia dei dati: correzione o rimozione di valori anomali (facoltativo). Inserisci i valori mancanti (ad es. Con zero, media, mediana ...) o elimina le loro righe (o colonne).
  2. Selezione funzionalità (facoltativo): rilasciare gli attributi che non forniscono informazioni utili per l'attività.
  3. Ingegnerizzazione delle funzionalità, ove appropriato: discrimina le funzionalità continue. Decomporre le funzioni (ad es. Categoriale, data / ora, ecc.). Aggiungi promettenti trasformazioni di funzionalità (ad es. Log (x), sqrt (x), x ^ 2, ecc.). Funzioni aggregate in nuove promettenti funzionalità.
  4. Ridimensionamento delle funzionalità: standardizzare o normalizzare le funzionalità.

0

Diverse grandi risposte qui, in particolare, la risposta di @ damienfrancois cattura in modo molto succinto l'idea generale.

Tuttavia, non vedo alcun esempio di ingegneria di funzionalità per dati relazionali o di serie storiche. In tal caso, i data scientist generalmente estraggono modelli statistici attraverso le relazioni e nel tempo. Ad esempio, per prevedere ciò che i clienti passeranno in futuro in un database di e-commerce, è possibile estrarre quantità come l'importo medio medio degli acquisti o la frequenza degli acquisti precedenti.

Ho scritto un pezzo su questo argomento che va molto più in dettaglio con diversi esempi qui: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

Vorrei iniziare con l'ordine inverso quale estrazione delle caratteristiche e perché è necessario selezionare le caratteristiche e ridurre la dimensionalità.

A partire dall'uso dell'estrazione delle caratteristiche che è principalmente a fini di classificazione. La classificazione è il processo di prendere una decisione su quale categoria particolare oggetto appartiene. Ha due fasi i) fase di addestramento, in cui dati i dati o gli oggetti le loro proprietà sono apprese usando alcuni processi (estrazione di caratteristiche) ii) fase di test, in cui l'oggetto sconosciuto è classificato usando le caratteristiche apprese nella fase precedente (di addestramento).

L'estrazione delle caratteristiche come suggerisce il nome dato lo scopo dei dati è trovare il modello sottostante. Questo modello sottostante che è definito come caratteristica corrispondente ai rispettivi dati. Esistono varie metodologie esistenti per l'estrazione di funzioni come Support Vector Machine (SVM).

Ora, l'estrazione delle funzionalità dovrebbe generare funzionalità che dovrebbero essere

  • robusto
  • discriminante
  • set ottimale di funzionalità

Selezione funzionalità: un set specifico di dati può essere rappresentato da una singola funzionalità o set di funzionalità. Nel processo di classificazione, un sistema è addestrato per almeno due classi. Quindi il sistema di allenamento genererà una singola funzionalità o un insieme di funzionalità. Queste funzionalità dovrebbero possedere le proprietà sopra indicate.

Il problema si presenta quando esiste un set di funzionalità per ogni classe e esiste una correlazione tra alcune delle funzionalità. Ciò implica tra quelle caratteristiche correlate che una o poche sono sufficienti per la rappresentazione ed è qui che la selezione delle caratteristiche entra in scena. Inoltre, queste funzionalità devono essere archiviate con l'aumento dei requisiti di memoria del set di funzionalità.

Quindi arriva la riduzione della dimensionalità che non è altro che la parte del processo di selezione delle funzioni. È il processo di scelta dell'insieme ottimale di funzionalità che meglio descrivono i dati. Esistono molte tecniche per lo stesso come l'analisi dei componenti principali, l'analisi dei componenti indipendenti e la fattorizzazione a matrice, ecc.


-3

Ad esempio ... se si dispone di un terreno agricolo, la selezione di una determinata area di quel terreno sarebbe la selezione delle caratteristiche. Se si mira a trovare le piante interessate in quella zona, non è necessario osservare ciascuna pianta in base a una caratteristica particolare comune in ogni pianta per trovare le anomalie ... per questo dovresti considerare l'estrazione delle caratteristiche. In questo esempio il terreno agricolo originale corrisponde alla riduzione dimensionale.


No, non ha nulla a che fare con i dati spaziali in particolare. È applicabile anche a dati temporali, spazio-temporali e di altro tipo.
Emre,
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.