编写 Apriori 生成的规则

Posted

技术标签:

【中文标题】编写 Apriori 生成的规则【英文标题】:Writing rules generated by Apriori 【发布时间】:2013-05-24 19:44:11 【问题描述】:

我正在处理一些大型交易数据。我一直在使用 read.transactions 和 apriori(arules 包的一部分)来挖掘频繁的项目配对。

我的问题是:生成规则时(使用“inspect()”),我可以在 R 控制台中轻松查看它们。现在我手动将结果复制到一个文本文件中,然后在 excel 中保存和打开。我想只使用 write.csv 或类似的东西保存生成的规则,但是当我尝试时,我收到一个错误,即无法将数据强制转换为 data.frame。

有没有人有在 R 中成功做到这一点的经验?

【问题讨论】:

【参考方案1】:

我知道我在回答我自己的问题,但我发现解决方案是使用 as() 将规则转换为数据框。 [我是 R 新手,所以我第一次寻找解决方案时错过了这个。] 从那里,它可以很容易地以任何你想要的方式进行操作(子设置、排序、导出等)。

> mba = read.transactions(file="Book2.csv",rm.duplicates=FALSE, format="single", sep=",",cols=c(1,2));

> rules_1 <- apriori(mba,parameter = list(sup = 0.001, conf = 0.01, target="rules"));

> as(rules_1, "data.frame");

【讨论】:

【参考方案2】:

实现这一目标的另一种方法是:

write(rules_1,
      file = "association_rules.csv",
      sep = ",",
      quote = TRUE,
      row.names = FALSE)

【讨论】:

这是一个比上述解决方案更好的解决方案,因为 as 函数可能会导致使用 Rscript 出错。此外,它使用了包的写入功能。【参考方案3】:

我在努力编写我的规则以求精益求精时发现了这篇文章。我的解决方案是:

library(writexl)

write_xlsx(as(rules_1, "data.frame"), "rules_1.xlsx")

在 excel 中更容易阅读和报告。

【讨论】:

以上是关于编写 Apriori 生成的规则的主要内容,如果未能解决你的问题,请参考以下文章

关联规则中Apriori演算法的一个小问题

Apriori 规则 df 要求

Hadoop 的 Apriori 和关联规则

在 R 中使用 Apriori 算法找不到规则

如何加速基于 Apriori 框架以仅生成关联规则,其结果(右手边)是数据集的一个元素?

Apriori算法实现