Redução eficiente da dimensionalidade para grandes conjuntos de dados

12

Eu tenho um conjunto de dados com ~ 1M linhas e ~ 500K recursos esparsos. Quero reduzir a dimensionalidade para algum lugar da ordem dos recursos densos de 1 a 5 mil.

sklearn.decomposition.PCAnão funciona com dados esparsos e tentei usar, sklearn.decomposition.TruncatedSVDmas obtive um erro de memória rapidamente. Quais são as minhas opções para redução eficiente da dimensionalidade nessa escala?

timleathart
fonte

Respostas:

11

Você já ouviu falar em aproximação e projeção de coletores uniformes (UMAP) ?

UMAP (Aproximação e projeção do coletor uniforme) é uma nova técnica de aprendizado de coletores para redução de dimensão não linear. O UMAP é construído a partir de uma estrutura teórica baseada na geometria de Riemann e na topologia algébrica. O resultado é um algoritmo escalável prático que se aplica a dados do mundo real. O algoritmo UMAP é competitivo com o t-SNE pela qualidade da visualização e, sem dúvida, preserva mais da estrutura global com desempenho superior em tempo de execução. Além disso, o UMAP, conforme descrito, não possui restrições computacionais na dimensão de incorporação, tornando-o viável como uma técnica de redução de dimensão de uso geral para aprendizado de máquina.

Verifique o código e o papel original para obter uma lista de prós e contras, é super fácil de usar.

Fatos rápidos: O UMAP pode lidar com grandes conjuntos de dados e é mais rápido que o t-SNE e também suporta o ajuste de dados de matriz esparsos, e ao contrário do t-SNE, uma técnica de redução de dimensão de uso geral, o que significa que não apenas ele pode ser usado para visualização, mas também para reduzir o espaço de recursos para alimentar outros modelos de aprendizado de máquina.

Exemplos concretos: comparei o método e o comparei com outras técnicas de redução de dimensionalidade do notebook de referência , se estiver interessado em dar uma olhada rápida e dar um salto inicial.

TwinPenguins
fonte
2
(+1) - UMAP é realmente ótimo! Você pode considerar reformar um pouco: seu parágrafo no meio e os seguintes tópicos repetem a mesma informação. Além disso, você pode fazer uma cotação, pois é (mais ou menos) copiada do site deles.
N1k31t4
2
Claro, certamente posso reduzi-lo, só queria apontá-los aqui e alguns pontos são um pouco reformulados. Obrigado. De qualquer forma, eu gosto de UMAP.
TwinPenguins
11
Obrigado pela recomendação! Eu o conhecia como uma alternativa ao t-SNE para visualização, mas não sabia que também era bom para a redução da dimensionalidade geral.
timleathart
1

Caso as pessoas que se deparem com este post achem que o UMAP não é eficiente o suficiente, aqui estão algumas outras técnicas que me deparei que são ainda mais eficientes (mas não de alta qualidade):

  • d × mdmsklearn.random_projection

  • mmsklearn.feature_extraction.FeatureHasher

timleathart
fonte