Reducción eficiente de dimensionalidad para grandes conjuntos de datos

12

Tengo un conjunto de datos con ~ 1M filas y ~ 500K características dispersas. Quiero reducir la dimensionalidad a algún lugar del orden de las características densas 1K-5K.

sklearn.decomposition.PCAno funciona en datos dispersos, y he intentado usarlos, sklearn.decomposition.TruncatedSVDpero obtengo un error de memoria bastante rápido. ¿Cuáles son mis opciones para una reducción eficiente de la dimensionalidad en esta escala?

Timleathart
fuente

Respuestas:

11

¿Has oído hablar de la aproximación y proyección de colector uniforme (UMAP) ?

UMAP (Aproximación y proyección múltiple uniforme) es una nueva técnica de aprendizaje múltiple para la reducción de dimensiones no lineales. UMAP se construye a partir de un marco teórico basado en la geometría de Riemann y la topología algebraica. El resultado es un algoritmo práctico escalable que se aplica a datos del mundo real. El algoritmo UMAP es competitivo con t-SNE para la calidad de visualización, y posiblemente conserva más de la estructura global con un rendimiento superior en tiempo de ejecución. Además, UMAP como se describe no tiene restricciones computacionales en la dimensión de inclusión, por lo que es viable como una técnica de reducción de dimensión de propósito general para el aprendizaje automático.

Verifique su código y el documento original para obtener una lista de pros y contras, es muy fácil de usar.

Datos rápidos: UMAP puede manejar grandes conjuntos de datos y es más rápido que t-SNE y también admite la adaptación a datos de matriz dispersos, y al contrario de t-SNE, una técnica de reducción de dimensiones de propósito general, lo que significa que no solo se puede usar para visualización sino también para reducir el espacio de funciones para alimentar otros modelos de aprendizaje automático.

Ejemplos concretos: He comparado el método y lo he comparado con algunas otras técnicas de reducción de dimensionalidad en el cuaderno de referencia , si está interesado en echarle un vistazo rápido y comenzar rápidamente.

Pingüinos Gemelos
fuente
2
(+1) - ¡UMAP es realmente genial! Puede considerar reformatear un poco: su párrafo en el medio y los puntos siguientes repiten la misma información. Además, puede hacer una cita, ya que está (más o menos) copiada de su sitio web.
n1k31t4
2
Claro, ciertamente puedo reducirlo, solo quería señalarlos aquí y algunos puntos están un poco redactados. Gracias. De todos modos me gusta UMAP.
TwinPenguins
1
¡Gracias por la recomendación! Lo sabía como una alternativa a t-SNE para la visualización, pero no me di cuenta de que también era bueno para la reducción general de la dimensionalidad.
timleathart
1

En caso de que las personas que se encuentran con esta publicación consideren que UMAP no es lo suficientemente eficiente, he aquí algunas otras técnicas que encontré que son aún más eficientes (pero no de tan alta calidad):

  • re × metroremetrosklearn.random_projection

  • metrometrosklearn.feature_extraction.FeatureHasher

Timleathart
fuente