2016-09-22 2 views
0

Ich verwende R Bibliothek arules für Regeln Minning.R - Assoziationsregeln, lhs Spalte ist leer

Also zuerst habe ich versucht, nur die Regeln zu sehen:

#Get the rules 
rules <- apriori(trans, parameter = list(supp=0.05, conf = 0.05)) #minlen = 2 
rules <- sort(rules, by="confidence", decreasing=TRUE) 

jedoch die lhs Spalte leer ist:

inspect(rules) 
lhs rhs    support confidence lift 
3 {} => {product=CM,DD,OS} 0.501 0.501  1 
2 {} => {product=CM,DD} 0.223 0.223  1 
1 {} => {product=CM}  0.068 0.068  1 

Also habe ich versucht, für die Spalte lhs speziell zu fragen:

rules <- apriori(data=trans, parameter=list(supp=0.05, conf = 0.05), 
       appearance = list(default="rhs", lhs="product=CM,DD,OS"), 
       control = list(verbose=F)) 
rules <- sort(rules, by="confidence", decreasing=TRUE) 
inspect(rules) 

Leider bleibt der Ausgang gleich.

Einer der Gründe könnte sein, dass die meisten Kunden ~ 4 Produkte haben, daher sind sie vielleicht keine Regeln, aber ich finde das unlikley.

Antwort

0

So war das Problem im Format der Daten. Wenn ich vorher Daten in .csv dump und read.transactions benutze, funktioniert es richtig.

trans = read.transactions("C:/.../basket_analysis_data.csv", format="single",sep = ";", cols = c(2,1)) 

Bevor ich direkt ODBC-Verbindung wurde, stellen Daten in den Datenrahmen und dann wandeln sie wie folgt aus:

trans <- data.frame(product = as.factor(qry$product_owned)) 
trans <- as(trans, "transactions") 

Jedoch verwenden CSV als unmittelbare Schritt ärgerlich. Wenn jemand helfen kann, es ohne .csv arbeiten zu lassen, würde ich es begrüßen.

Verwandte Themen