Arules返回空的LHS

7

我有一个数据集,看起来像这样:

"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个回答

19

来自 help("apriori"):

APparameterminlen 的默认值为 1。这意味着仅包含一个项(即空的前提/LHS)的规则,例如:

{} => {beer}

将被创建。这些规则意味着无论涉及哪些其他项,右手边的项都会以规则置信度(等于支持度)所给定的概率出现。如果要避免这些规则,请使用参数parameter=list(minlen=2)


0
luke给出的答案是正确的。此外,我们可以说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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接