Évaluation des grappes de chaînes de Markov de premier ordre

10

J'ai regroupé mon ensemble de données de plusieurs milliers de chaînes de Markov de premier ordre en une dizaine de clusters.

Existe-t-il une méthode recommandée pour évaluer ces clusters et découvrir ce que les éléments des clusters partagent et comment ils diffèrent des autres clusters? Je peux donc faire une déclaration comme «Les processus du cluster A ont tendance à rester dans l'état Y une fois qu'ils y sont, ce qui n'est pas vrai pour les processus des autres clusters».

Les matrices de transition de ces chaînes de Markov sont trop grandes pour simplement «regarder et voir». Ils sont relativement clairsemés, si cela peut aider.

Mon idée était de prendre toutes les matrices de transition dans un cluster, de les additionner et de les tracer en intensité dans une image (sur une échelle de 0 à 255). Y a-t-il quelque chose de plus "professionnel" que je devrais essayer?

user7610
la source
Avez - vous savez que ces processus sont de premier ordre des chaînes de marché (et, si oui, comment)? En supposant que la réponse à cette question soit affirmative, quelles informations supplémentaires a priori connaissez-vous sur la structure? J'essaie d'identifier pourquoi vous êtes intéressé par le clustering en premier lieu; Je soupçonne que cela permettra à nos lecteurs de vous guider plus efficacement vers une solution.
Cardinal
Les données d'origine étaient des flux de clics générés par les utilisateurs de mon site. J'ai créé les processus markov afin que chaque processus décrive le flux de clics d'un utilisateur. Je sais qu'il y a des livres et des papiers qui disent que les chaînes de Markov sont inadéquates pour cela, mais mes données n'incluent pas l'URL exacte que l'utilisateur a demandée, juste "l'application" à laquelle l'URL appartient. (Mon site est un système d'information divisé en 105 soi-disant "applications" qui sont pour la plupart des parties autonomes du site, liées par une page d'accueil et un menu latéral sur chaque page)
user7610
Je suis intéressé par le clustering car je veux révéler des groupes d'utilisateurs qui ont des modèles similaires dans l'utilisation du site. J'ai émis l'hypothèse que les modèles que la chaîne de Markov capture suffisent pour distinguer de tels groupes. J'ai vérifié comment les clusters que j'ai créés correspondent aux rôles que les utilisateurs ont sur le site et il semble toujours que dans un cluster, il y a beaucoup d'utilisateurs d'un rôle et seulement quelques-uns d'autres rôles, donc cela semble prometteur. J'espère que ça aide
user7610
Salut, je rencontre le même problème. Enfin, comment avez-vous résolu le problème?
nan
@nan Je ne l'ai pas fait, j'avais besoin de ça juste dans un projet à terme, alors j'ai simplement fait autre chose. Si je devais le résoudre maintenant, j'essaierais de regarder en.wikipedia.org/wiki/… pour le clustering initial. t-SNE est très populaire de nos jours et adapté à l'OMI. J'espère que le résultat que j'obtiendrai serait plus significatif que les résultats que j'ai obtenus avec mon approche ad hoc. Et utiliser une chose relativement nouvelle et super cool satisferait l'enseignant;)
user7610

Réponses:

1

Pour faire une déclaration sur le comportement en régime permanent de chaque cluster, vous pouvez calculer les distributions en régime permanent de chaque matrice de transition par vecteurs propres, puis comparer les boîtes à moustaches par cluster. Vous risquez de rencontrer des problèmes dans le calcul de l'état d'équilibre sans appliquer d'abord une sorte de lissage.

Comment regroupez-vous les matrices de transition? Si c'était moi, j'appliquerais un lissage additif à chaque ligne, puis prendrais la transformation log-ratio centrée de chaque ligne, puis aplatirais les matrices.

Si vous êtes en cluster avec K-means ou une variante, vous pouvez analyser les centres de cluster normalisés. Ou choisissez simplement quelques observations de chaque groupe et analysez-les.

Jessica Collins
la source
0

Tout d'abord, pour vous faire une idée, vos matrices de dimension 105 x 105 correspondent-elles aux applications que vous mentionnez? Lorsque vous dites «rester dans l'état Y», cela signifie-t-il rester dans l'application Y?

Ensuite, je suppose que les résultats tels que "Les processus du cluster A ont tendance à rester dans l'état Y une fois qu'ils y sont, ce qui n'est pas vrai pour les processus des autres clusters" sont un peu trop fins avec seulement 10 clusters. Avez-vous essayé un clustering du domaine d'application - si je comprends bien, vous pouvez regrouper les 105 applications en fonction du comportement de l'utilisateur. Ensuite, avez-vous regardé la simple présence d'utilisateurs plutôt que la transition, c'est-à-dire regarder les profils d'utilisateurs à travers les 105 applications? Il semble que vous puissiez utiliser le coefficient de Pearson entre les profils d'utilisateurs; soit sur des clusters d'applications, soit sur les applications elles-mêmes. Cela pourrait peut-être être étendu aux transitions entre les applications, mais actuellement, je pense qu'il existe un énorme décalage entre le nombre de clusters et le type de résultat qui vous intéresse.

micans
la source