Calcul des Indicateurs Clés de l'Exploration de Données
Glissez pour afficher le menu
Support : Définition, calcul et interprétation
Support mesure la fréquence à laquelle un article ou un ensemble d'articles spécifique apparaît dans un ensemble de transactions.
Mathématiquement, le support d'un ensemble d'articles correspond à la proportion de transactions contenant tous les articles de cet ensemble. Dans un contexte de vente au détail, le support permet de comprendre la fréquence d'une combinaison de produits parmi l'ensemble des achats.
Support(itemset) = Number of transactions containing itemset / Total number of transactions
Une valeur de support élevée indique que l'ensemble d'articles est plus répandu dans vos données, ce qui en fait un candidat pour une analyse approfondie ou des promotions. Par exemple, si « bread and butter » apparaissent ensemble dans 30 transactions sur 100, le support pour {"bread", "butter"} est de 0,3.
Confiance : formule, signification et utilisation pratique
Confiance évalue la probabilité qu’un client qui achète l’article A achète également l’article B.
Elle est calculée comme le rapport entre le nombre de transactions contenant à la fois A et B et le nombre de transactions contenant uniquement A.
Confiance(A ⇒ B) = Nombre de transactions contenant à la fois A et B / Nombre de transactions contenant A
En pratique, la confiance indique la fiabilité de la règle « si A, alors B ». Si la confiance est élevée, il est plus probable que les clients qui achètent A achèteront également B, ce qui est utile pour des recommandations ciblées ou le marketing.
Lift : Dérivation, mesure et importance
Lift évalue à quel point il est plus probable que l’article B soit acheté lorsque l’article A est acheté, comparé au cas où les achats de A et B seraient des événements indépendants.
Elle est calculée en divisant la confiance de la règle par le support du conséquent (B) :
Lift(A ⇒ B) = Confiance(A ⇒ B) / Support(B)
Une valeur de lift égale à 1 implique aucune association (indépendance), supérieure à 1 indique une association positive, et inférieure à 1 suggère une association négative. Le lift est essentiel car il ajuste en fonction de la popularité du conséquent, permettant de distinguer les relations réellement significatives des coïncidences.
Exemple pratique : Calcul du support, de la confiance et du lift
Supposons que vous disposiez des données de transaction suivantes :
- Transaction 1 : Milk, Bread ;
- Transaction 2 : Milk, Diaper, Beer, Bread ;
- Transaction 3 : Milk, Diaper, Beer, Cola ;
- Transaction 4 : Bread, Butter.
Calculons les métriques pour la règle : Milk ⇒ Bread.
-
Support(Milk, Bread) : Apparaît dans les transactions 1 et 2 (2 sur 4) ⇒ 0.5 ;
-
Support(Milk) : Apparaît dans les transactions 1, 2 et 3 (3 sur 4) ⇒ 0.75 ;
-
Support(Bread) : Apparaît dans les transactions 1, 2 et 4 (3 sur 4) ⇒ 0.75.
-
Confiance(Milk ⇒ Bread) : Support(Milk, Bread) / Support(Milk) = 0.5 / 0.75 = 0.6667 ;
-
Lift(Milk ⇒ Bread) : Confiance(Milk ⇒ Bread) / Support(Bread) = 0.6667 / 0.75 = 0.8889.
Cela signifie que même si "Milk" et "Bread" apparaissent souvent ensemble, l'achat de "Milk" n'augmente pas la probabilité d'acheter "Bread" par rapport à la base de référence.
123456789101112131415161718192021222324252627282930import pandas as pd from mlxtend.preprocessing import TransactionEncoder # Sample transaction data data = [ ['Milk', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Bread'], ['Milk', 'Diaper', 'Beer', 'Cola'], ['Bread', 'Butter'] ] # Converting to DataFrame with one-hot encoding te = TransactionEncoder() te_ary = te.fit(data).transform(data) df = pd.DataFrame(te_ary, columns=te.columns_) # Calculating support support_milk = df['Milk'].mean() support_bread = df['Bread'].mean() support_milk_bread = (df['Milk'] & df['Bread']).mean() # Calculating confidence for rule: Milk => Bread confidence = support_milk_bread / support_milk # Calculating lift for rule: Milk => Bread lift = confidence / support_bread print(f"Support (Milk & Bread): {support_milk_bread:.2f}") print(f"Confidence (Milk ⇒ Bread): {confidence:.2f}") print(f"Lift (Milk ⇒ Bread): {lift:.2f}")
Ce code montre comment calculer les principales métriques des règles d'association—support, confiance et lift—à l'aide d'un petit jeu de données transactionnelles. Voici le fonctionnement de chaque partie :
-
Préparation des données de transaction :
- La liste
datacontient les transactions, chacune étant une liste d'articles achetés ; - Chaque sous-liste représente une transaction (panier) d'un client.
- La liste
-
Encodage one-hot des transactions :
- Le code utilise
TransactionEncoderde la bibliothèquemlxtendpour convertir la liste de listes d'articles en un format adapté à l'analyse ; fitapprend tous les articles uniques, ettransformcrée un tableau booléen (True si l'article est présent dans la transaction, False sinon) ;- Ce tableau est converti en DataFrame pandas, où chaque colonne est un article et chaque ligne une transaction.
- Le code utilise
-
Calcul du support :
support_milk = df['Milk'].mean()calcule la proportion de transactions contenant "Milk" ;support_bread = df['Bread'].mean()calcule la proportion contenant "Bread" ;support_milk_bread = (df['Milk'] & df['Bread']).mean()calcule la proportion de transactions contenant à la fois "Milk" et "Bread" (intersection des deux colonnes).
-
Calcul de la confiance :
confidence = support_milk_bread / support_milkcalcule la confiance pour la règle "Milk ⇒ Bread" ;- Cela mesure la fréquence à laquelle "Bread" est acheté lorsque "Milk" est acheté.
-
Calcul du lift :
lift = confidence / support_breadcalcule le lift pour la règle ;- Le lift compare la confiance observée à la confiance attendue si les achats de "Milk" et "Bread" étaient indépendants.
-
Affichage et interprétation des résultats :
- Le code affiche les valeurs de support, confiance et lift pour "Milk & Bread" ;
- Un support de 0,50 signifie que "Milk" et "Bread" sont achetés ensemble dans la moitié des transactions ;
- Une confiance de 0,67 signifie que lorsque "Milk" est acheté, "Bread" l'est aussi dans deux tiers des cas ;
- Un lift de 0,89 suggère que l'achat de "Milk" rend en réalité l'achat de "Bread" légèrement moins probable que par hasard (puisque lift < 1).
1. Supposons que dans un ensemble de données de 1 000 transactions, 150 transactions contiennent à la fois « apples » et « bananas ». Quel est le support pour l'ensemble d'articles {"apples", "bananas"} ?
2. Quelle affirmation distingue le mieux la confiance du lift dans l'extraction de règles d'association ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion