Market Basket-analyse in R
Christopher Bruffaerts
Statistician
Transactie: Het kopen of verkopen van iets.

Transactionele data: Lijst met alle items gekocht door een klant in één aankoop.
Voorbeeld van één transactie:
TID Product
1 1 Bread
2 1 Cheese
3 1 Cheese
4 1 Cheese
Transactions-klasse: representeert transactiedata voor het minen van itemsets of regels.
Conversie vanaf:
Maar je moet je data eerst voorbereiden.
Belangrijk bij transactionele data
Veld/kolom om een product te identificeren
Veld/kolom om een transactie te identificeren
Transactionele data uit de winkel
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")
)
Eerste blik op transacties
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
Maak lijsten met de functie split
# Transformeer TID naar een factor
my_transactions$TID =
factor(my_transactions$TID)
# Splits in groepen
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
Omzetten naar transacties-klasse
# Zet om naar een transactioneel dataset
data_trx = as(data_list,"transactions")
# Inspecteer transacties
inspect(data_trx)
Inspectie van de transactionele data
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
Overzicht van transacties
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
Specifieke transacties opvragen
inspect(data_trx[1])
inspect(data_trx[1:3])
Samenvatting van het transactions-object
summary(data_trx)
ItemMatrix plotten
image(data_trx)
Waarschuwing: gebruik dit op een beperkt aantal transacties
Handig om te zien:
Dichtheid = 18/28 = 0,64

Market Basket-analyse in R