Riduzione efficiente della dimensionalità per set di dati di grandi dimensioni


12

Ho un set di dati con ~ 1M righe e ~ 500K caratteristiche sparse. Voglio ridurre la dimensionalità da qualche parte nell'ordine delle caratteristiche dense 1K-5K.

sklearn.decomposition.PCAnon funziona su dati sparsi e ho provato a usare sklearn.decomposition.TruncatedSVDma ho un errore di memoria abbastanza rapidamente. Quali sono le mie opzioni per un'efficace riduzione della dimensionalità su questa scala?

Risposte:


11

Hai mai sentito parlare di Uniform Manifold Approximation and Projection (UMAP) ?

UMAP (Uniform Manifold Approximation and Projection) è una nuova tecnica di apprendimento molteplice per la riduzione dimensionale non lineare. UMAP è costruito da un quadro teorico basato sulla geometria riemanniana e sulla topologia algebrica. Il risultato è un pratico algoritmo scalabile che si applica ai dati del mondo reale. L'algoritmo UMAP è competitivo con t-SNE per la qualità di visualizzazione e presumibilmente conserva più della struttura globale con prestazioni di runtime superiori. Inoltre, UMAP come descritto non ha restrizioni computazionali sull'incorporamento della dimensione, rendendolo praticabile come tecnica di riduzione della dimensione per scopi generali per l'apprendimento automatico.

Controlla il loro codice e il documento originale per un elenco di pro e contro, è super facile da usare.

Fatti rapidi: UMAP può gestire set di dati di grandi dimensioni ed è più veloce di t-SNE e supporta anche l'adattamento a dati di matrice sparsa, e contrariamente a t-SNE, una tecnica di riduzione dimensionale per scopi generici, il che significa che non solo può essere utilizzato per la visualizzazione ma anche per ridurre lo spazio delle funzionalità per l'alimentazione in altri modelli di apprendimento automatico.

Esempi concreti: ho confrontato il metodo e lo ho confrontato con alcune altre notebook di benchmark sulle tecniche di riduzione della dimensionalità , se interessati a dare una rapida occhiata e un salto in avanti.


2
(+1) - UMAP è davvero fantastico! Potresti considerare di riformulare un po ': il tuo paragrafo al centro e i seguenti punti elenco ripetono le stesse informazioni. Inoltre, potresti renderlo un preventivo, in quanto è (più o meno) copiato e incollato dal loro sito Web.
n1k31t4,

2
Certo, posso certamente ridurlo, volevo solo indicarli qui e alcuni punti sono un po 'riformulati. Grazie. Comunque mi piace UMAP.
TwinPenguins,

1
Grazie per la raccomandazione! Lo conoscevo come un'alternativa a t-SNE per la visualizzazione, ma non mi rendevo conto che fosse anche buono per la riduzione della dimensionalità generale.
timleathart,

1

Nel caso in cui le persone che si imbattono in questo post trovino UMAP non abbastanza efficiente, ecco alcune altre tecniche che ho incontrato che sono ancora più efficienti (ma non così di alta qualità):

  • d × mdmsklearn.random_projection

  • mmsklearn.feature_extraction.FeatureHasher

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.