Données transactionnelles

Analyse des paniers d'achats en R

Christopher Bruffaerts

Statistician

Qu'est-ce qu'une transaction ?

Transaction : activité d'achat ou de vente de quelque chose.

transaction

Données transactionnelles : Liste de tous les articles achetés par un client lors d'un achat unique.

Exemple d'une transaction :

  TID Product
1   1   Bread
2   1  Cheese
3   1  Cheese
4   1  Cheese
Analyse des paniers d'achats en R

La classe transactionnelle en R

Transactions-class : représente des données transactionnelles pour extraire des ensembles d'articles ou des règles.

Conversion à partir de :

  • listes
  • matrices
  • trames de données

Cependant, il faut d'abord préparer vos données.

À considérer avec les données transactionnelles

  • Champ/colonne qui identifie le produit

  • Champ/colonne qui identifie la transaction

Analyse des paniers d'achats en R

Retour à l'épicerie (1)

Données transactionnelles du magasin

my_transactions = data.frame(
  "TID" = c(1,1,1,1, 2,2,2, 3,3, 4,4,4, 5,5, 6,6, 7,7),
  "Product" = c("Bread", "Cheese", "Cheese", "Cheese",
                "Bread", "Butter", "Wine",
                "Butter", "Butter",
                "Butter", "Wine", "Wine",
                "Butter", "Cheese",
                "Cheese", "Wine",
                "Wine", "Wine")
)

Aperçu des transactions

head(my_transactions, 10)
   TID Product
1    1   Bread
2    1  Butter
3    1  Cheese
4    1    Wine
5    2   Bread
6    2  Butter
7    2    Wine
8    3   Bread
9    3  Butter
10   4  Butter
Analyse des paniers d'achats en R

Retour à l'épicerie (2)

Créer des listes avec la fonction split

# Transform TID into a factor
my_transactions$TID = 
  factor(my_transactions$TID)

# Split into groups
data_list = split(my_transactions$Product,
                   my_transactions$TID)
data_list
$`1`
[1] Bread  Butter Cheese Wine  
Levels: Bread Butter Cheese Wine

$`2`
[1] Bread  Butter Wine  
Levels: Bread Butter Cheese Wine

$`3`
[1] Bread  Butter
Levels: Bread Butter Cheese Wine
Analyse des paniers d'achats en R

Retour à l'épicerie (3)

Conversion en classe transactionnelle

# Transform to transactional dataset
data_trx = as(data_list,"transactions")

# Inspect transactions
inspect(data_trx)

Inspection des données transactionnelles

    items                      transactionID
[1] {Bread,Butter,Cheese,Wine} 1            
[2] {Bread,Butter,Wine}        2            
[3] {Bread,Butter}             3            
[4] {Butter,Cheese,Wine}       4            
[5] {Butter,Cheese}            5            
[6] {Cheese,Wine}              6            
[7] {Butter,Wine}              7
Analyse des paniers d'achats en R

Autres inspections des transactions

Vue d'ensemble des transactions

inspect(head(data_trx))
    items                      transactionID
[1] {Bread,Butter,Cheese,Wine} 1            
[2] {Bread,Butter,Wine}        2            
[3] {Bread,Butter}             3            
[4] {Butter,Cheese,Wine}       4            
[5] {Butter,Cheese}            5            
[6] {Cheese,Wine}              6

Accéder à des transactions précises

inspect(data_trx[1])
inspect(data_trx[1:3])

Résumé de l'objet transactionnel

summary(data_trx)
Analyse des paniers d'achats en R

Aperçu des transactions

Tracer la matrice d'articles (ItemMatrix)

image(data_trx)

Avertissement : utilisez la fonction sur un nombre limité de transactions

Utile pour repérer :

  • Des tendances dans les transactions
  • La parcimonie des données

Densité = 18/28 = 0,64

trx_image

Analyse des paniers d'achats en R

Inspectons des transactions !

Analyse des paniers d'achats en R

Preparing Video For Download...