cspade
Description
L'action cspade est le Sherlock Holmes des séries temporellesSuite d'observations collectées à intervalles réguliers. L'analyse vise à identifier des tendances, des cycles ou une saisonnalité pour modéliser et prédire les comportements futurs. dans SAS Viya. Elle utilise l'algorithme %cSpade pour dénicher des motifs fréquents dans vos données séquentielles. Que vos clients achètent des couches puis de la bière (un grand classique du marketing), ou que vos machines affichent une série d'alertes avant de rendre l'âme, cspade analyse l'ordre et le temps pour extraire des motifs significatifs. C'est l'outil idéal pour le clickstream analysis ou la maintenance prédictive, car il ne se contente pas de voir ce qui est arrivé, il voit dans quel ordre cela s'est produit !
Paramètres Clés
Préparation des données
Création d'un jeu de données de parcours client
Ce code génère une table simulant des achats effectués par différents clients à des moments différents pour tester l'analyse de séquences.
| 1 | DATA sequence_test; |
| 2 | INPUT client_id temps produit_id; |
| 3 | DATALINES; |
| 4 | 1 1 100 |
| 5 | 1 2 200 |
| 6 | 1 3 300 |
| 7 | 2 1 100 |
| 8 | 2 2 300 |
| 9 | 3 1 200 |
| 10 | 3 2 300 |
| 11 | 4 1 100 |
| 12 | 4 2 200 |
| 13 | 4 3 300 |
| 14 | 5 1 400 |
| 15 | ; |
| 16 | RUN; |
| 17 | PROC CAS; |
| 18 | TABLE.loadTable / path="sequence_test", casout={name="seq_data", replace=true}; |
| 19 | QUIT; |
Exemples d'utilisation
Analyse de séquences basique
Identification des motifs de consommation apparaissant dans au moins 50% des parcours clients.
| 1 | PROC CAS; |
| 2 | sequence.cspade / |
| 3 | TABLE={name="seq_data"}, |
| 4 | sequenceId="client_id", |
| 5 | eventId="temps", |
| 6 | itemId="produit_id", |
| 7 | support=0.5, |
| 8 | casout={name="motifs_frequents", replace=true}; |
| 9 | RUN; |
| 10 | TABLE.fetch / TABLE="motifs_frequents"; |
| 11 | QUIT; |
Résultat Attendu :
Analyse avec contraintes temporelles et de longueur
Extraction de séquences complexes : on limite la longueur à 3 éléments, avec un écart de temps maximum de 2 unités entre les étapes.
| 1 | PROC CAS; |
| 2 | sequence.cspade / |
| 3 | TABLE={name="seq_data"}, |
| 4 | sequenceId="client_id", |
| 5 | eventId="temps", |
| 6 | itemId="produit_id", |
| 7 | support=0.2, |
| 8 | maxGap=2, |
| 9 | maxLen=3, |
| 10 | maxSize=1, |
| 11 | casout={name="motifs_contraints", replace=true}; |
| 12 | RUN; |
| 13 | TABLE.fetch / TABLE="motifs_contraints"; |
| 14 | QUIT; |