2017-07-02 2 views
0

J'ai une trame de données R avec customer_id et product_name. Un client peut avoir plusieurs produits. Dans la colonne des clients, il y a des doublons customer_ids car ils ont plusieurs produits. J'essaie de faire une analyse apriori de base et de déterminer quelques règles d'association pour les produits achetés ensemble. Je voudrais utiliser le paquet Arules et ArulesViz dans R pour faire cela.Règles d'association utilisant Arules et ArulesViz à partir des données

Lorsque j'ai essayé d'exécuter ceci, j'obtiens généralement 0 règles ou le produit lhs -> rhs customer_id. Donc, je ne crois pas que je charge les données correctement pour voir plusieurs produits à un seul client pour dériver les associations.

Toute aide serait appréciée!

Cadre de données de base Exemple

df <- data.frame(cust_id = as.factor(c('1aa2j', '1aa2j', '2b345', 
'2b345', 'g78a8', 'y67r3')), product = as.factor(c("Bat", "Sock", 
"Hat", "Shirt", "Ball", "Shorts"))) 

rules <- apriori(df) inspect(rules) 

lhs rhs support confidence lift 1 {product=Bat} => {cust_id=1aa2j} 0.167 1 3 
2 {product=Sock} => {cust_id=1aa2j} 0.167 1 3 
3 {product=Hat} => {cust_id=2b345} 0.167 1 3 
4 {product=Shirt} => {cust_id=2b345} 0.167 1 3 
5 {cust_id=g78a8} => {product=Ball} 0.167 1 6 
6 {product=Ball} => {cust_id=g78a8} 0.167 1 6 
7 {cust_id=y67r3} => {product=Shorts} 0.167 1 6 
8 {product=Shorts} => {cust_id=y67r3} 0.167 1 6 

Répondre

1

Il est récupéré à partir des exemples pour transactions (légèrement modifié):

library(arules) 
df <- data.frame(cust_id = as.factor(c('1aa2j', '1aa2j', '2b345', 
'2b345', 'g78a8', 'y67r3')), product = as.factor(c("Bat", "Sock", 
"Hat", "Shirt", "Ball", "Shorts"))) 

trans <- as(split(df[,"product"], df[,"cust_id"]), "transactions") 
inspect(trans) 

    items  transactionID 
[1] {Bat,Sock} 1aa2j   
[2] {Hat,Shirt} 2b345   
[3] {Ball}  g78a8   
[4] {Shorts} y67r3 

Maintenant, vous pouvez utiliser apriori sur trans.

+0

Cela fonctionne, merci! – Andre