Pergunta para os mineradores de dados experientes:
Dado este cenário:
- Existem N carrinhos de compras
- Cada carrinho de compras é preenchido com um número arbitrário de itens M de um conjunto infinitamente grande (com a quantidade atual de dados que eu tenho, esse número arbitrário pode atingir números em torno de 1500)
- A ordem em que cada carrinho é preenchido é significativa
- Existem outros atributos, como a localização geográfica do comprador, mas esses podem ser (e atualmente são) descartados em favor da simplificação do algoritmo.
Eu preciso:
- Em um determinado momento, considerando apenas os conjuntos de itens solicitados em cada carrinho, identifique os carrinhos 'similares' sem o conhecimento prévio dos rótulos das classes
- Após uma certa quantidade de dados ter sido coletada e uma labuta trabalhar com os dados e atribuir rótulos, crie um classificador que possa trabalhar rapidamente com dados não vistos futuros
Abordagem inicial:
- Até agora, minha abordagem foi focada no primeiro ponto. Meu método usa o k-means clustering e lida com a natureza seqüencial dos dados usando uma matriz de distância gerada pelo cálculo da distância de Hamming entre os carros. Dessa forma, [maçã, banana, pêra] é diferente de [pêra, maçã, banana], mas [maçã, banana, pêra] é menos diferente de [maçã, banana, antílope]. O valor apropriado de k é determinado através da investigação do coeficiente da silhueta. Os clusters gerados a partir disso parecem fazer sentido, mas o tempo de execução do meu método será definitivamente proibitivo conforme meu conjunto de dados é escalado.
Questão:
- Alguém teria alguma sugestão para um minerador de dados iniciante para esse problema?
Edita com mais informações:
- Encontrei sugestões que consideram o uso de recursos n-grama e as comparam em pares. Uma preocupação que tenho sobre isso é a ordem: a ordem das seqüências será mantida se os modelos n-gram forem usados? Além disso, vejo problemas de desempenho sendo uma possibilidade maior com esse método.