2016-07-26 6 views
0

Ich habe Daten wie diese data redundant. Also, ich möchte das redundante Element durch eindeutigen Code entfernen, dann habe ich diese Daten wie this. Dann versuche ich Regeln nach arules zu bekommen.Arules erhalten 0 Regeln für einen Apriori-Algorithmus, aber warum?

library(arules) 
library(qpcR) 
data<- read.csv("Book1.csv", header=TRUE) 
b<-sapply(1:ncol(data), function(x) unique(data[,x])) 
b<-lapply(b,as.data.frame) 
a<-list() 
databaru<-do.call(qpcR:::cbind.na, lapply(b, as.vector)) 
databaru[]<-lapply(databaru,as.factor) 
colnames(databaru)<-colnames(data) 
rules<-apriori(databaru, parameter=list(supp=0.0016, conf=0.1)) 
inspect(rules) 

Dann, wenn ich versuche es läuft, habe ich 0 Regeln, ich bin sicher, bevor ich er entfernt redundante Element jeder Spalte, ich erhielt viele Regeln, aber, wenn ich den Code ausführen versuchen, und löschen Sie den Code für Entfernen redundantes Element, ich habe 0 Regel auch .. (redundant: ich benutze Code "Unique") Dann versuche ich die Unterstützung und Vertrauen geben den niedrigeren Wert, aber ich habe es immer noch nicht bekommen.

Apriori 

Parameter specification: 
confidence minval smax arem aval originalSupport support minlen maxlen target ext 
     0.1 0.1 1 none FALSE   TRUE 0.0016  1  10 rules FALSE 

Algorithmic control: 
filter tree heap memopt load sort verbose 
0.1 TRUE TRUE FALSE TRUE 2 TRUE 

Absolute minimum support count: 4 

set item appearances ...[0 item(s)] done [0.00s]. 
set transactions ...[34440 item(s), 2561 transaction(s)] done [0.02s]. 
sorting and recoding items ... [0 item(s)] done [0.00s]. 
creating transaction tree ... done [0.00s]. 
checking subsets of size 1 done [0.00s]. 
writing ... [0 rule(s)] done [0.00s]. 
creating S4 object ... done [0.00s]. 

Was soll ich tun? Was ist los mit dir? was ist passiert? Vielen Dank für Ihre Hilfe

+0

Ich denke, zumindest dein 'as.factor' ist ein schuldiger Schritt (wenn nicht andere). Für jede Spalte werden Codes mit unterschiedlichen Werten codiert. Ich würde entweder mögliche Werte im Aufruf präzisieren oder - einfacher - Rohwerte beibehalten. –

+0

Ich kann Arulen nicht ausführen, wenn ich es nicht in Faktor geändert habe. Also was soll ich tun? weil, wenn ich es lösche, es Fehler gibt, weil ich es diskretisieren sollte. Aber wie? Weil meine Daten Integer sind, aber sie sind nicht für eine coinöse Variable, sie sind ID. – ILoveThisName

+0

Sie können zuerst alle eindeutigen Werte abrufen, zum Beispiel mit 'levels <- unique (unlist (databaru))' und diesen Vektor verwenden, wenn Sie factor: 'lapply (datenbank, as.factor, levels = levels)' (nicht getestet, da Sie keine Daten zum Testen bereitstellen) –

Antwort

0

Association Regel Mining benötigt (binäre) Elemente und nicht numerische (kontinuierliche) Variablen. Sie müssen jede numerische Variable in Ihren Daten diskretisieren. Siehe ? discretize im Paket arules.

Verwandte Themen