network community

Segmentation Client par Affinité (Standard)

Scénario de test & Cas d'usage

Contexte Métier

Une enseigne de grande distribution souhaite segmenter sa base client non pas sur des critères démographiques, mais sur des habitudes d'achat croisées. L'objectif est d'identifier des 'communautés' de produits souvent achetés ensemble par les mêmes groupes de clients pour cibler des promotions.
Préparation des Données

Création d'un graphe d'achats croisés : Produits (Noeuds) et fréquences d'achat simultané (Liens). Deux clusters distincts sont simulés : 'Petit-Dejeuner' (Café, Lait, Sucre) et 'Apéro' (Chips, Soda, Olives).

Copié !
1DATA mycas.market_basket; INPUT product1 $ product2 $ frequency; DATALINES; Cafe Lait 50
2Cafe Sucre 40
3Lait Sucre 45
4Chips Soda 80
5Chips Olives 30
6Soda Olives 25
7Cafe Chips 2
8; RUN;

Étapes de réalisation

1
Exécution de l'algorithme Louvain par défaut pour identifier les clusters naturels.
Copié !
1 
2PROC CAS;
3network.community / links={name='market_basket'} nodesVar={vars=('product1', 'product2')} outNodes={name='ProductSegments', replace=true};
4 
5RUN;
6 
2
Vérification des résultats dans la table de sortie.
Copié !
1 
2PROC CAS;
3TABLE.fetch / TABLE='ProductSegments' sortBy='community';
4 
5RUN;
6 

Résultat Attendu


L'action doit générer la table `ProductSegments`. On attend 2 communautés distinctes : une regroupant {Cafe, Lait, Sucre} et une autre {Chips, Soda, Olives}. Le lien faible (Cafe-Chips) ne doit pas fusionner les deux groupes.