2016-07-13 2 views
2

J'essaie d'utiliser TraMineR mais je suis ouvert aux commentaires/références/liens pour plus d'informations sur la façon de représenter les séquences d'événements multicanaux ou hiérarchiques et les algorithmes qui y sont associés.comment représenter les séquences d'événements multicanaux

J'ai une structure complexe d'événements que j'essaie de comprendre comment représenter une séquence. Il existe différents types d'événements. Chaque type d'événement peut avoir un ensemble différent de champs (et différents nombres de champs). Par exemple, l'âge peut être un champ dans un type d'événement alors que la hauteur peut être un champ dans un autre type d'événement. Mon premier instinct (et je crois qu'une approche commune) consistait à "aplatir" tout, par ex. chaque combinaison possible de valeurs pour un événement constitue un type d'événement unique. Cependant, cela peut manquer des modèles dans les types d'événements génériques. Par exemple, disons que je suis un éleveur de chiens et que je bois beaucoup de café et que je veux voir s'il y a des habitudes dans mes habitudes d'achat de café/chien (oui, un exemple stupide). Je pourrais avoir des événements comme:

- Bought dog 
- Breed: hound 
- Sex: female 

- Bought coffee 
- Store: Starbucks 
- Roast: dark 

- Bought dog 
- Breed: hound 
- Sex: female 

- Bought coffee 
- Store: Starbucks 
- Roast: light 

- Bought dog 
- Breed: Doberman pincher 
- Sex: male 

Pour aplatir les données que je peux dire que chaque combinaison unique de magasin et rôti est un événement d'achat de café unique. En outre, chaque combinaison unique de race et de sexe est un événement d'achat de chien unique. Cette approche transformerait l'exemple ci-dessus en 5 types d'événements différents (plutôt que 2 types d'événements avec champs). Cette représentation pourrait détecter des tendances telles que les suivantes: si je bois 2 cafés torréfiés noirs de Starbucks, alors je suis plus susceptible de le faire avec un pigeon doberman mâle. Toutefois, cette représentation peut manquer des motifs plus généraux qui ne dépendent pas des valeurs de champ dans les événements. Par exemple, il se peut que j'achète simplement un chien après avoir deux cafés en général. Je voudrais être capable de détecter des modèles aux deux "niveaux" et ne suis pas sûr de la façon de représenter les événements pour le faire. Bien sûr, une approche serait d'utiliser les deux représentations, puis de combiner les résultats des deux.

Donc, les questions sont: 1. Tous les liens/citations à des articles qui traitent de cela? 2. Est-ce un problème commun? 3. Des recommandations sur la façon de représenter ces événements? 4. Des recommandations sur la façon de travailler avec eux dans TraMineR 5. Des recommandations/liens/références à des algorithmes qui traitent de ce genre de chose? 6. Des idées du tout?

Merci !!!

+0

Quelqu'un a-t-il déjà traité ce problème auparavant? Est-ce complètement unique? Je trouve cela difficile à croire mais je n'ai rien. – jojo

Répondre

2

Ceci est en fait similaire à la question posée ici (bien qu'ils ne savaient pas faire référence à « multicanal » et le titre était vague): Multiple events in traminer

TraMineR a le soutien pour faire face à des séquences multi-canaux avec des fonctions telles que: seqdistmc

L'approche générale, je crois, est de faire exactement ce que j'ai décrit comme notre solution "aplatie". Dans ce cas, vous combinez les valeurs de chaque canal dans un type d'événement. par exemple. dans mon exemple dog.hound.female serait un événement avec un canal/champ pour remplacer le premier événement dans mon exemple qui a 3 champs/canaux séparés. Vous utilisez ensuite les fonctions habituelles pour trouver des distances, des sous-séquences, etc. Vous avez cependant des options pour configurer les coûts de substitution et trouver des distances, donc il y a des options supplémentaires pour faire cette approche multicanal. Il traite également des valeurs manquantes dans le cas où vous avez des canaux de longueur différente ou qui ont des lacunes.

Ceci est également similaire à ce qui est suggéré dans la réponse au sujet lié ci-dessus, en utilisant la fonction R native interaction.