Arules返回空LHS

时间:2016-08-17 06:38:15

标签: r arules

我有一个如下所示的数据集:

"user.get","search_restaurants","cuisines.get"
"user.get","search_restaurants","user.get","search_restaurants"
"order/address/get_user_addresses"
"search_restaurants","search_restaurantssearch_restaurants"
"restaurant.get","search_restaurants","order/menu","restaurant.get","restaurant.get","restaurant.get","order/menu","order/menu","restaurant.get","restaurant.getsearch_restaurantsrestaurant.get","user.get","order/menu","order/menu","get_user_reviews_filtered","order/menu","restaurant.get"

当我在其上运行apriori算法时:

txn1 = read.transactions(file="path", rm.duplicates=TRUE)
basket_rules <- apriori(txn1, parameter = list(sup = 0.01, conf = 0.01,target="rules"))
inspect(basket_rules)

我得到了空白的lhs。这是:

{} => {cuisines.get}

知道为什么会这样吗?如何解决这个问题?

2 个答案:

答案 0 :(得分:10)

来自help("apriori")

  

APparameter minlen的默认值为1。这意味着   只有一个项目(即空前因/ LHS)的规则,如

{} => {beer}
     

将被创建。这些规则意味着无论其他项目是什么   参与RHS中的项目将以概率给出   规则的信心(等于支持)。如果你想避免   然后,这些规则使用参数parameter=list(minlen=2)

答案 1 :(得分:0)

卢克的回答是正确的。 另外,我们可以说apriori总是为我们提供有关结果的信息,即程序中的RHS。这就是为什么如果不使用“ minlen”,则在最小输出中也给出了最小支持等于最小置信度的单个项目集的原因。

例如。

  > inspect(rules)
    lhs            rhs     support confidence lift count
[1] {}          => {Soup}  0.8     0.8        1.0  4    
[2] {}          => {Pasta} 0.8     0.8        1.0  4    
[3] {Salad}     => {Ham}   0.4     1.0        1.7  2 

我希望这可以解释输出(此示例中未显示其他规则)。 上面给出的是该表的部分输出。

Customer ID       Food 
 1          -Salad, Hamburger, Taco  
 2          -Soup, Hamburger, Pasta 
 3          -Salad, Soup, Hamburger, Pasta 
 4          -Soup, Pasta 
 5          -Taco, Pasta, Soup