【问题标题】:R pruning mining rules - aprioriR修剪挖掘规则 - 先验
【发布时间】:2015-05-22 09:39:53
【问题描述】:

我对在 R 中使用 apriori 获得的规则有疑问。

数据输入、转换等后,我输入了命令

rules

我得到了我的规则。例如:

 lhs        rhs        support confidence      lift
1  {16058} => {16059} 0.01218522  0.9375000 67.886029
2  {16059} => {16058} 0.01218522  0.8823529 67.886029
3  {10049} => {10021} 0.01462226  0.7826087 34.406832
4  {10021} => {10049} 0.01462226  0.6428571 34.406832

我的回答是:有没有办法修剪我不感兴趣的规则? 在这种情况下,我只想查看第一条和第三条规则,以避免使用两条规则连接两个项目的“循环”规则。

谢谢!

【问题讨论】:

    标签: r data-mining apriori market-basket-analysis


    【解决方案1】:

    我将提供rdatamining Titanic example 的替代解决方案,因为我发现这对于更大的规则库来说效率非常低。这个问题确实在CRAN Intro to arules p 中提到过。 14.

    您可以使用 arules 中的 is.redundant 函数,而不是使用整个项目集矩阵(可能非常大)。这基本上会查找所有更具体的规则(相同的后件/RHS,但 LHS/前件中的更多项目)具有相同或更低的提升/置信度/[其他指标]...

    更正式地说,您寻找 X 的子集 X' 在提升或置信度方面有改进(或至少没有下降)。

    使用提升作为改进措施的代码如下所示:

    rules <- apriori(df, parameter = list(supp = 0.01, conf = 0.5, target = "rules"))
    rules_lift <- sort(rules, by = 'lift')
    rules_pruned <- rules_lift[!is.redundant(rules_lift, measure="lift")]
    inspect(head(rules_pruned, 20))
    

    我给出了这个解决方案,因为您提到了泰坦尼克号示例作为您问题的解决方案。但是,这种方法并不能解决您在问题描述中提到的循环规则,因为这些结果 Y 不一样。

    【讨论】:

      【解决方案2】:

      感谢 rdatamining - rdatamining Titanic example 我发现这个解决方案可以修剪多余的规则:

      rules.sorted <- sort(rules, by="lift")
      subset.matrix <- is.subset(rules.sorted, rules.sorted)
      subset.matrix[lower.tri(subset.matrix, diag=T)] <- NA
      redundant <- colSums(subset.matrix, na.rm=T) >= 1
      which(redundant)
      rules.pruned <- rules.sorted[!redundant]
      inspect(rules.pruned)
      plot(rules.pruned, method="graph", control=list(type="items"))
      

      【讨论】:

      • 这适用于小型规则集。对于较大的集合,is.subset 操作可能会占用太多内存(在我的情况下,它会导致 rstudio 崩溃)。
      【解决方案3】:

      我知道这是一篇旧帖子,但当我开始研究同一个问题时,我发现了它。只是为了将人们指向比您的链接更完整的资源,CRAN Intro to arules 解释了如何使用 R 中的正常子集功能来修剪不需要的规则(第 26 页中间):“作为关联规则挖掘的典型,规则的数量发现是巨大的。分析这些 规则,例如,subset() 可用于为每个项目生成单独的规则子集”,然后继续解释并给出示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-29
        • 1970-01-01
        • 2015-05-21
        • 2016-04-06
        • 2011-03-04
        • 1970-01-01
        • 2015-02-13
        • 1970-01-01
        相关资源
        最近更新 更多