0
我有这样的数据data redundant。所以,我想通过唯一代码删除冗余项目,然后我得到了像this这样的数据。然后我尝试通过arules获得规则。Arules为apriori算法获得0条规则,但是为什么?
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)
然后当我尝试运行它,我得到0的规则,我相信我删除之前,他冗余项目的每一列,我得到了很多的规则,但是,当我尝试运行代码,并删除代码删除多余的项目,我也得到了0规则..(冗余:我使用代码“独特”) 然后我尝试支持和信心给予较低的价值,但我仍然没有得到它。
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].
我该怎么办?怎么了?发生了什么?非常感谢您的帮助
我想至少你的'as.factor'是一个有罪的步骤(如果不是其他的)。对于每列,代码将使用不同的值进行编码。我会在调用中精确设置可能的级别,或者 - 更简单 - 保留原始值。 –
如果我没有改变它的因子,我不能做运行arules。所以我该怎么做?因为当我删除它时,它会给出错误,因为我应该离散它。 但是如何?因为我的数据是整数,但它们不是可变的,它们是ID。 – ILoveThisName
您可能会开始首先检索所有唯一值,例如使用'levels < - unique(unlist(databaru))'并在创建factor时使用此向量:'lapply(databaru,as.factor,levels = levels)'(不是因为你没有提供一些数据来测试) –