Uma opção interessante seria explorar a redução de dimensionalidade com base neural. O tipo de rede mais comumente usado para redução de dimensionalidade, o autoencoder, pode ser treinado ao custo de , em que representa as iterações de treinamento (é um hiperparâmetro independente dos dados de treinamento) . Portanto, a complexidade do treinamento simplifica para .O(i⋅n)iO(n)
Você pode começar dando uma olhada no trabalho do seminário de 2006 por Hinton e Salakhutdinov [1]. Desde então, as coisas evoluíram muito. Agora, a maioria das atenções é alcançada pelos Autoencodificadores Variacionais [2], mas a idéia básica (uma rede que reconstrói a entrada em sua camada de saída com uma camada de gargalo no meio) permanece a mesma. Observe que, ao contrário de PCA e RP, os auto-codificadores executam uma redução de dimensionalidade não linear. Além disso, ao contrário do t-SNE, os autoencodificadores podem transformar amostras invisíveis sem a necessidade de treinar novamente o modelo inteiro.
No lado prático, recomendo dar uma olhada neste post , que fornece detalhes sobre como implementar diferentes tipos de codificadores automáticos com a maravilhosa biblioteca Keras.
[1] Hinton, GE e Salakhutdinov, RR (2006). Reduzindo a dimensionalidade dos dados com redes neurais. science, 313 (5786), 504-507.
[2] Kingma, DP, & Welling, M. (2013). Bayes variacionais de codificação automática. pré-impressão do arXiv arXiv: 1312.6114.