gpt4 book ai didi

r - R中的关联规则-删除冗余规则(规则)

转载 作者:行者123 更新时间:2023-12-04 11:22:42 32 4
gpt4 key购买 nike

假设我们有3条规则:

[1] {A,B,D} -> {C}

[2] {A,B} -> {C}

[3] Whatever it is

规则 [2]是规则 [1]的子集(因为规则 [1]包含规则 [2]中的所有项),因此应消除规则 [1](因为规则 [1]过于具体,并且其信息包含在规则 [2]中)

我通过互联网搜索,每个人都在使用这些代码来删除多余的规则:
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]

我不明白代码是如何工作的。

在代码的第二行之后,subset.matrix将变为:
      [,1] [,2] [,3]
[1,] NA 1 0
[2,] NA NA 0
[3,] NA NA NA

下三角形中的单元格设置为NA,并且由于 [2]规则是 [1]规则的子集,因此相应的单元格设置为1。所以我有2个问题:
  • 为什么我们必须将下部三角形设置为NA?如果这样做,那么如何检查规则[2]是否是规则[3]的子集? (该单元格已设置为NA)
  • 在我们的例子中,规则[1]应该是要消除的规则,但是这些代码消除了规则[2]而不是规则[1]。 (由于第2列中的第一个单元格为1,并且根据代码的第3行,第2列的列总和> = 1,因此将被视为冗余)

  • 任何帮助,将不胜感激 !!

    最佳答案

    为了使代码正常工作,您需要一种兴趣度量(置信度或提升),并且rules.sorted需要按置信度或提升进行排序。无论如何,由于is.subset()创建了一个大小为n ^ 2的矩阵,因此代码效率极低,其中n是规则数。另外,规则的is.subset合并了不正确的规则的rhs和lhs。因此,不必太担心实现细节。

    现在,将更有效的方法实现为软件包arules中的is.redundant()函数(在1.4-2版中可用)。
    该说明来自手册页:

    A rule is redundant if a more general rules with the same or a higher confidence exists. That is, a more specific rule is redundant if it is only equally or even less predictive than a more general rule. A rule is more general if it has the same RHS but one or more items removed from the LHS. Formally, a rule X -> Y is redundant if

    for some X' subset X, conf(X' -> Y) >= conf(X -> Y).

    This is equivalent to a negative or zero improvement as defined by Bayardo et al. (2000). In this implementation other measures than confidence, e.g. improvement of lift, can be used as well.



    查看 ? is.redundant中的示例。

    关于r - R中的关联规则-删除冗余规则(规则),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38796256/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com