Avaliação de clusters de cadeias de Markov de primeira ordem

10

Agrupei meu conjunto de dados de vários milhares de cadeias de Markov de primeira ordem em cerca de 10 clusters.

Existe alguma maneira recomendada de como avaliar esses clusters e descobrir o que os itens nos clusters compartilham e como eles diferem de outros clusters? Para que eu possa fazer uma declaração como "Os processos no cluster A tendem a permanecer no estado Y quando chegam lá, o que não é verdade para processos em outros clusters".

As matrizes de transição dessas cadeias de Markov são grandes demais para apenas "olhar e ver". Eles são relativamente escassos, se isso puder ajudar.

Minha idéia era pegar todas as matrizes de transição em um cluster, soma-las e plotá-las como intensidade em uma imagem (em uma escala de 0 a 255). Existe algo mais "profissional" que eu deveria experimentar?

user7610
fonte
Você sabia que esses processos são cadeias de mercado de primeira ordem (e, em caso afirmativo, como)? Supondo que a resposta seja afirmativa, que informações a priori adicionais você conhece sobre a estrutura? Estou tentando identificar por que você está interessado em agrupar em primeiro lugar; Suspeito que saber disso ajudará nossos leitores a guiá-lo com mais eficiência para uma solução.
cardeal
Os dados originais foram cliques gerados pelos usuários no meu site. Criei os processos markov para que cada processo descreva o fluxo de cliques de um usuário. Eu sei que existem livros e documentos que dizem que as cadeias de markov são inadequadas para isso, mas meus dados não incluem o URL exato que o usuário solicitou, apenas o "aplicativo" ao qual o URL pertence. (Meu site é um sistema de informação que é dividido em 105 chamadas "aplicações", que são em sua maioria auto-contido partes do site, ligadas através de uma home page e menu lateral em cada página)
user7610
Estou interessado em cluster porque quero revelar grupos de usuários que têm padrões semelhantes no uso do site. Eu supus que os padrões capturados pela cadeia de Markov são suficientes para distinguir esses grupos. Eu verifiquei como os clusters criados por mim correspondem às funções que os usuários têm no site e sempre parece que em um cluster há muitos usuários de uma função e apenas alguns de outras funções, o que parece promissor. Espero que ajude
user7610
Olá, estou com o mesmo problema. Finalmente, como você resolveu o problema?
nan
@ nan eu não, eu precisava disso apenas em um projeto de termo, então eu simplesmente fiz outra coisa. Se eu tivesse que resolvê-lo agora, tentaria procurar em en.wikipedia.org/wiki/… o cluster inicial. Hoje em dia, o t-SNE é super popular e adequado para IMO. Espero que o resultado obtido seja mais significativo do que os resultados obtidos com minha abordagem ad-hoc. E usando coisa relativamente nova super-cool iria satisfazer o professor;)
user7610

Respostas:

1

Para fazer uma declaração sobre o comportamento do estado estacionário de cada cluster, você pode calcular as distribuições do estado estacionário de cada matriz de transição por vetores próprios e comparar gráficos de caixas por cluster. É provável que você encontre problemas no cálculo do estado estacionário sem aplicar primeiro algum tipo de suavização.

Como você está agrupando as matrizes de transição? Se fosse eu, eu aplicaria suavização aditiva em cada linha e, em seguida, faria a conversão de razão de log centralizada de cada linha e achataria as matrizes.

Se você estiver fazendo um cluster com K-means ou uma variante, poderá analisar os centros de cluster normalizados. Ou escolha apenas algumas observações de cada cluster e analise-as.

Jessica Collins
fonte
0

Primeiro, para se ter uma idéia, suas matrizes de dimensão 105 x 105 correspondem às aplicações mencionadas? Quando você diz 'permanecer no estado Y', isso significa permanecer no aplicativo Y?

Então, eu assumiria que resultados como "Processos no cluster A tendem a permanecer no estado Y quando chegam lá, o que não é verdade para processos em outros clusters", são um pouco refinados com apenas 10 clusters. Você já tentou um cluster do domínio do aplicativo - se eu entendi corretamente, você pode agrupar os 105 aplicativos com base no comportamento do usuário. Em seguida, você examinou a presença simples de usuários em vez de fazer a transição, ou seja, observou os perfis de usuários nos 105 aplicativos? Parece que você poderia usar o coeficiente de Pearson entre perfis de usuário; em clusters de aplicativos ou nos próprios aplicativos. Talvez isso possa ser estendido para transições entre aplicativos, mas atualmente sinto que há uma enorme incompatibilidade entre o número de clusters e o tipo de resultado no qual você está interessado.

micans
fonte