【问题标题】:How can I constrain the apriori function in R to consider only specific value items in LHS?如何约束 R 中的先验函数以仅考虑 LHS 中的特定值项?
【发布时间】:2014-03-23 16:30:51
【问题描述】:

在 R 中,我正在尝试使用 apriori 函数进行关联规则学习。

我有一个这样的数据集:

A B C D E 

1 0 0 1 0

1 0 1 0 1

1 1 1 0 1

0 0 0 1 0

我对@9​​87654322@的情况感兴趣,我可以通过这样做:

inspect( subset( rules.sorted, subset = rhs %pin% "E=1" ))

但我也只对LHS 包含'=1' 条件而不是'=0' 的情况感兴趣。

所以,我不想要这样的规则:

{A=1,D=0} => {E=1}

我只想要像

这样的规则
{A=1,C=1} => {E=1}

如何在LHS 方面实现这一点?我只能收集如何约束它以查找特定列中的规则,但不能查找具有特定值的任何列。

【问题讨论】:

    标签: r data-mining apriori arules


    【解决方案1】:

    正如您已经指出的,如果您想在右侧使用E=1,只需过滤您的数据

    默认情况下,关联规则挖掘应该只给你积极的规则,也就是A => B

    通常,如果您想使用否定规则,则必须在数据中添加否定符号,即 ANOT=1A=0

    你确定你不只是误解输出吗?

    【讨论】:

    • 您好,我也有负面规则,例如在上述情况下,例如:{D=0} => {E=1}。 lhs 上的这些 '=0' 部分是我想避免的规则。我是第一次使用 apriori,但我从不同的地方读到了它。我从来没有遇到过关联规则只给出积极的规则。您是指先验的R函数吗?还是你使用的软件/功能默认排除了这样的负面规则?
    • 据我所知,原来的 APRIORI 并没有这样做。您是否检查了实施的选项?我不使用R,所以我没有手册。它也可能是 R 生成项目集的数据转换的一部分......即它不会将“1”视为存在而“0”视为不存在,而是将“A=1”和“A=0”视为两个不同的项。
    • 是的,我检查了选项。我找不到这样的选项来控制相等值。该功能要求我的数据属于类因素。所以,我也认为 R 将 0 和 1 视为两个不同的项目。我从没想过修复它可以解决我的问题。我会尝试修复它,看看它是否有效。谢谢。
    • 也考虑使用不同的软件。我相信这是一个很好的 FIM 软件页面:borgelt.net/fpm.html - 我不是 R 的粉丝,质量参差不齐。
    • 这是一个很棒的链接。谢谢。
    【解决方案2】:

    我遇到了同样的问题。当您将数据转换为因子时会出现问题(例如 cmets 中提到的几个人到另一个答案)。当我将我的 data.frame 转换为矩阵然后转换为事务时,我只在输出中有积极的规则。

    【讨论】:

    • 谢谢。我正在尝试,但是将数据框转换为矩阵意味着我会丢失所有变量名。你怎么处理?因为我有数百个变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    相关资源
    最近更新 更多