R - 关联规则,lhs列为空

时间:2016-09-22 07:51:19

标签: r

我正在使用R库arules来制定规则。

所以首先我试着看看规则:

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

lhs列为空:

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

所以我尝试专门询问lhs列:

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)

不幸的是输出仍然相同。

其中一个原因可能是大多数客户拥有约4种产品,因此它们可能不是任何规则,但我发现它是unlikley。

1 个答案:

答案 0 :(得分:0)

所以问题在于数据的格式。如果我在将数据转储到.csv并使用read.transactions之前,它可以正常工作。

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

在我使用直接ODBC连接之前,将数据放入数据框,然后将其转换为:

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

然而,使用.csv作为直接步骤是令人讨厌的。如果有人可以帮助如何在没有.csv的情况下使其工作,我将不胜感激。