Meu conjunto de dados é composto por seqüências de vetores. Cada vetor possui 50 dimensões com valor real. O número de vetores em uma sequência varia de 3-5 a 10-15. Em outras palavras, o comprimento de uma sequência não é fixo.
Alguma quantidade razoável de seqüências (não vetores!) É anotada com um rótulo de classe. Minha tarefa é aprender um classificador que, dada uma sequência de vetores, o rótulo da classe para toda a sequência seja computado.
Não sei dizer a natureza exata dos dados, mas a natureza das sequências não é temporal. No entanto, um vector não podem ser permutados com um vector sem alterar a etiqueta ( ). Em outras palavras, a ordem dos vetores é importante. Os vetores são comparáveis; por exemplo, faz sentido calcular um produto escalar e usar esse valor de similaridade.
Minha pergunta é: quais são as ferramentas / algoritmos que podem ajudar a classificar esses dados?
UPDATE: Os dados têm uma propriedade que um ou muito poucos vetores influenciam fortemente o rótulo da classe.
SOLUÇÃO POSSÍVEL: Depois de algumas pesquisas, parece que as Redes Neurais Recorrentes (RNN) se encaixam perfeitamente na conta. A idéia geral é escolher um tamanho de contexto , concatenar vetores de palavras, fazer um pool máximo e alimentá-lo através do NN clássico. Em cada posição possível da janela de contexto em uma frase, um vetor de característica é construído. O vetor de recurso final é construído usando o pool máximo, por exemplo. A retropropagação é feita para ajustar os parâmetros da rede. Eu já obtive alguns resultados positivos (a GPU é uma obrigação).
fonte