ruleMining

mbanalysis

##set_rulemining

Description

Market Basket Analysis

L'action mbanalysis (Market Basket AnalysisGemini said

Le Market Basket Analysis est une méthode de data mining identifiant les associations de produits. Elle révèle les habitudes d'achat pour optimiser le placement, les promotions et le cross-selling.
) est votre détective privé pour les tickets de caisse ! Elle effectue une analyse des données transactionnellesDonnées enregistrant chaque événement métier au moment où il se produit (vente, stock, clic). Elles incluent horodatage, acteurs, quantités et montants pour alimenter les analyses de séries chronologiques. pour générer des règles d'association, révélant ainsi les habitudes d'achats combinés. Indispensable pour booster le cross-selling ou simplement prouver le fameux mythe selon lequel les acheteurs de couches achètent aussi de la bière. Plongez dans les algorithmes via la documentation officielle.

Syntaxe Officielle
proc cas;
ruleMining.mbanalysis /
table={name="<nom_table>", caslib="<caslib>"}
idVariable="<variable_panier>"
tgtVariable="<variable_produit>"
conf=<niveau_confiance>
lift=<lift_minimum>
outrule={name="<table_regles>", replace=true};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie les paramètres de la table d'entrée contenant vos données transactionnelles. (Paramètre requis)
idVariable La variable qui sert d'identifiant pour regrouper les cibles en paniers (ex: un ID de transaction). (Paramètre requis)
tgtVariable La variable cible nominale contenant les items à analyser (ex: le nom de l'article). (Paramètre requis)
conf La confiance minimale (en pourcentage) pour qu'une règle soit conservée. Valeur par défaut : 50.
lift Le lift (ou levier) minimum nécessaire pour qu'une règle soit considérée pertinente. Valeur par défaut : 1.
items Le nombre d'éléments inclus dans une règle. Par défaut, la valeur est de 2.
maxItems Taille maximale autorisée pour un panier. Les paniers plus volumineux sont ignorés. Valeur par défaut : 1000.
outrule Table de sortie qui contiendra les règles d'association générées, ainsi que les mesures de support et de lift.
outfreq Table de sortie optionnelle recensant les items fréquents uniques, leur compte et leur support.
suppct Le support minimum d'une règle, exprimé en pourcentage du nombre total de paniers.
nLHS_range Permet de spécifier le nombre minimum (lower) et maximum (upper) d'items autorisés du côté gauche (antécédent) de la règle.

Préparation des données

Création d'un historique d'achats

Nous allons créer une table contenant des paniers factices pour tester notre algorithme. Un simple jeu de données simulant un petit supermarché.

1DATA casuser.achats;
2 LENGTH ticket_id 8 produit $20;
3 INPUT ticket_id produit $;
4 DATALINES;
51 Lait
61 Couches
71 Biere
82 Lait
92 Couches
103 Biere
113 Couches
124 Lait
134 Biere
144 Couches
155 Pommes
165 Lait
17;
18RUN;

Exemples d'utilisation

Découverte des paires d'achats de base

Lancement d'une analyse simple pour repérer quelles paires de produits sont achetées ensemble, avec un niveau de confiance fixé à 50%.

1PROC CAS;
2 ruleMining.mbanalysis /
3 TABLE={name="achats", caslib="casuser"}
4 idVariable="ticket_id"
5 tgtVariable="produit"
6 conf=50
7 lift=1
8 outrule={name="regles_basiques", caslib="casuser", replace=true};
9RUN;
10QUIT;
Résultat Attendu :
Une table CAS nommée 'regles_basiques' est créée. Elle détaille l'antécédent et le conséquent de chaque règle, confirmant ainsi quelles combinaisons de produits génèrent le plus de ventes croisées.
Market Basket avancé avec filtres et statistiques

Dans ce scénario plus poussé, nous ajustons la taille des paniers analysés, fixons des critères stricts (confiance à 60%, lift à 1.2, et un support minimal de 10%) et récupérons à la fois les règles métier et les fréquences pures des articles.

1PROC CAS;
2 ruleMining.mbanalysis /
3 TABLE={name="achats", caslib="casuser"}
4 idVariable="ticket_id"
5 tgtVariable="produit"
6 conf=60
7 lift=1.2
8 items=3
9 minItems=2
10 maxItems=10
11 suppct=10
12 outfreq={name="frequences_produits", caslib="casuser", replace=true}
13 outrule={name="regles_complexes", caslib="casuser", replace=true};
14RUN;
15QUIT;
Résultat Attendu :
Le serveur CAS génère deux tables : 'frequences_produits' dresse le bilan d'apparition de chaque article pris isolément, tandis que 'regles_complexes' affiche les associations à très haute valeur ajoutée.