Classifique os clientes com base em 2 recursos E uma série de eventos


12

Preciso de ajuda sobre qual deve ser meu próximo passo em um algoritmo que estou projetando.

Devido aos NDAs, não posso divulgar muito, mas tentarei ser genérico e compreensível.

Basicamente, após várias etapas nos algoritmos, tenho o seguinte:

Para cada cliente que eu tenho e eventos que eles fazem durante um mês, durante as primeiras etapas, agrupei os eventos em várias categorias (cada cliente terá os eventos separados em categorias que variam de 1 a x, sendo x entre 1 e 25, geralmente as primeiras categorias têm mais densidade de eventos que as outras).

Para cada categoria e cliente, criei uma série temporal agregando os eventos do mês por hora (obtendo padrões de quando esses eventos estão sendo realizados). Também estou usando algumas variáveis ​​de normalização com base no número de dias em um mês (30 dias) em que o indivíduo realiza pelo menos um evento e no número de dias com pelo menos um evento no total de dias com pelo menos um evento (agregando todos os clusters). O primeiro fornece uma proporção de quão ativo o cliente está durante o mês e o segundo avalia a categoria em relação aos outros.

A mesa final fica assim

|*Identifier*|  *firstCat* | *feature1* | *feature2*  |   {      *(TIME SERIES)*   }

CustomerID  |  ClusterID |  DaysOver30 | DaysOverTotal | Events9AM Events10AM ... 

 xx | 1 | 0,69 |  0,72 |  0,2   0,13   ...

 xx | 2 | 0,11 |  0,28 |  0,1   0,45   ...

 xy | 1 | 0,23 |  0,88 |  0,00  0,60   ...

 xy | 2 | 0,11 |  0,08 |  1,00  0,00   ...

 xy | 3 | 0,10 |  0,04 |  0,40  0,60   ...

As variáveis ​​de séries temporais são a porcentagem sobre o total de eventos por dia em cada categoria específica (isso significa que, para cada linha que soma todas as variáveis, deve ser 1). O motivo de fazer isso dessa maneira é porque, por exemplo, uma série temporal com eventos 0 0 0 1 0e 1 1 1 2 1é completamente diferente, e a padronização para o normal daria resultados semelhantes. E devido ao alto desvio entre diferentes categorias, verifico os valores nas séries temporais independentemente dos demais.

O que preciso fazer agora é identificar essas categorias (lembre-se, elas podem ser de 1 a x, sendo x qualquer número de 1 a 25) em três tags: tag A, tag B e None Deles. Observando essas variáveis, posso identificar manualmente a qual tag elas pertencem, e a idéia é identificar manualmente o máximo possível e usar qualquer algoritmo classificador para aprender com isso e identificar todas elas.

Minha ideia era usar várias regressões logísticas na tabela, mas todas as variáveis ​​das séries temporais são correlacionadas (uma vez que são uma combinação linear entre si), então achei melhor usar um algoritmo de agrupamento apenas durante as séries temporais usando euclidianos. distância para categorizar os diferentes padrões e usar o resultado e as outras duas variáveis ​​normalizadoras na regressão logística.

A outra preocupação que tenho é que essa abordagem leva cada linha independentemente das outras e, em teoria, para cada cliente deve haver apenas 0 ou 1 tag A, 0 ou 1 tag B e o restante deles deve ser None (outro A dica é que normalmente as tags A e B estão entre as primeiras categorias, porque é altamente dependente dos recursos de normalização (se o total de dias no total for Alto, há uma grande possibilidade de a linha ser A ou B, dependendo do padrão de série temporal) .

Editar: Isso não é mais uma preocupação, apenas executarei duas regressões logísticas diferentes, uma para a Tag A ou Outra e outra para a Tag B ou outra, com as probabilidades de resultado que posso selecionar apenas o melhor de cada uma.

O conjunto de dados é enorme e o algoritmo final precisa ser aplicado usando SQL (no Teradata), mas para obter os coeficientes da regressão logística ou os centros do cluster, pego uma amostra e uso R.


Apenas uma sugestão :) ... Não tenho certeza se você obtém uma resposta adequada, desde que a pergunta seja longa. Por exemplo, suas tags são exatamente a minha direção de pesquisa, mas eu realmente não tenho tempo e energia para ler tudo! Se você pode atualizar uma versão mais curta, seria melhor para você Q e também para si mesmo, pois nos relatórios científicos é necessário falar brevemente.
Kasra Manshaei 19/01

Vou tentar reduzir a questão. É que normalmente, se eu não me explicar, as pessoas confundem o que eu pretendia. De qualquer forma, assim que eu chegar em tempo no meu trabalho Ill tentar reduzir o tamanho da pergunta, obrigado pela recomendação
JusefPol

Qual é a sua pergunta exata? Simplesmente calculava os recursos das séries temporais e depois os adicionava aos recursos dos clientes. Então você terá apenas cluster básico. Para a escolha de recursos da série temporal, é necessário conhecimento de domínio.
Nikolas Rieble

Respostas:


2

Sei que já faz um tempo desde que a pergunta foi publicada, mas para futuros leitores proponho aqui outra solução para o problema de classificação de séries temporais de dados proporcionais, isto é, vetores de proporções.

Modelos de Markov ocultos (HMMs) são amplamente utilizados para classificação de séries temporais. As implementações originais foram desenvolvidas para dados discretos e gaussianos, mas desde então elas foram estendidas para mais distribuições de probabilidade.

Entre elas, as distribuições Dirichlet, Dirichlet generalizada e Beta-Liouville, perfeitamente adequadas para trabalhar com dados proporcionais.

Geralmente, um modelo é treinado para cada categoria ("Tag" nesta pergunta) a partir de séries temporais pelas quais a categoria é conhecida. Quando uma nova série temporal precisa ser classificada, é calculada sua probabilidade em relação a cada modelo. A nova série temporal é geralmente atribuída à categoria que leva à maior probabilidade.

Aqui estão os documentos de referência para esses modelos, apresentando-os mais profundamente e fornecendo todas as equações necessárias para a implementação:

  • Modelo Dinâmico de Mistura de Dirichlet, Relatório de Pesquisa do IDIAP, L. Chen, D. Barber, J.-M. Odobez, abril de 2007
  • Modelagem proporcional de dados com modelos de Markov ocultos baseados em misturas generalizadas de Dirichlet e Beta-Liouville aplicadas à detecção de anomalias em áreas públicas, E. Epaillard, N. Bouguila, Reconhecimento de Padrões 55, pp 125-136, 2016

Para os dois recursos adicionais mencionados na pergunta, os HMMs para dados mistos também foram desenvolvidos no seguinte trabalho de pesquisa: Modelo híbrido de Markov oculto para modelagem mista contínua / contínua e discreta / contínua de dados, E. Epaillard, N. Bouguila, MMSP, 1-6, 2015.

Esses modelos são mais pesados ​​de implantar do que os modelos de regressão, mas têm a vantagem de serem modelos discriminativos e generativos e de serem capazes de generalizar bem quando houver alguma variabilidade nos dados processados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.