【问题标题】:R association rules apriori -- suppress grouping of itemsR关联规则先验 - 抑制项目分组
【发布时间】:2019-03-21 17:01:02
【问题描述】:

我正在使用 arules 包中的 apriori 函数来执行项目关联分析。将结果强制转换为 datframe 后,我注意到在某些情况下可以像这样对输出进行分组:

 LHS                 RHS        Support        Confidence      Lift        Count
{Item1, Item2}      {Item3}      .84             0.99          12.3          6

有没有办法强制函数只在每个事务中的两个项目之间执行分析并产生相应的支持、置信度等?换句话说,我可以强制apriori 将上述结果拆分为:

 LHS           RHS        Support        Confidence      Lift       Count
{Item1}      {Item3}        a                b            c           d
{Item2}      {Item3}        e                f            g           h

【问题讨论】:

  • 您显示的两个结果不相等。第一个(带有 {Item1, Item2})表示如果 Item1 和 Item2 都存在,则 Item3 很可能存在,第二个(两行)版本表示如果 Item 1 或第 2 项存在,第 3 项很可能。你是想改变你得到的规则,还是想强制先验只给出 LHS 上单个项目的规则?
  • @G5W 我知道我可以在apriori 中传递maxlen 参数,但是,如果我没记错的话,一旦分析完成,它更像是一个过滤器。我想我要问的更多的是规则转换方面,apriori 可以确定仅针对 2 个项目的规则,即使它可以为这 2 个相同项目以及其他项目确定规则,可能吗?

标签: r dataframe arules


【解决方案1】:

maxlen in apriori 在挖掘后不充当过滤器。 apriori 创建长度为 1 的频繁项集,然后是 2、3、...,maxlen 停止挖掘过程。

另一方面,minlen 是一个过滤器,因为必须首先找到所有较短的频繁项集。

如果你问是否可以确定支持和信心

{Item1} -> {Item3}
{Item2} -> {Item3}

仅仅依靠他们的支持和信心

{Item1, Item2} -> {Item3}

那么答案是否定的。但是,从先验属性我们至少知道以下内容:

supp({Item1} -> {Item3}) >= supp({Item1, Item2} -> {Item3})
supp({Item2} -> {Item3}) >= supp({Item1, Item2} -> {Item3})

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    相关资源
    最近更新 更多