【问题标题】:How could we know the ColumnName /attribute of items generated in Rules我们如何知道规则中生成的项目的列名/属性
【发布时间】:2013-04-30 05:27:35
【问题描述】:

使用 arules 包,'apriori' 返回一个 'rules' 对象。

我们如何进行查询 - 规则 {lhs, rhs} 中的项目来自哪一列?

示例:

我在文件“input.csv”中有一些表格形式的数据,并希望将返回的规则项集与文件中的列标题关联/解释。我怎么可能这样做?

任何指针表示赞赏。 谢谢,



一个可重现的例子:
input.csv

ABC,DEF,GHI,JKL,MNO
11,56789,1,0,10
12,57685,0,0,10
11,56789,0,1,11
10,57689,1,0,12
11,56789,0,1,12
10,57685,1,0,12
10,57689,1,0,10
11,56789,0,1,12
11,56789,0,0,10
11,56789,0,0,10
11,56789,0,1,10
11,56789,0,0,10

调用 Apriori:

transactions <- read.transactions("input.csv", format="basket", sep = ',', cols = NULL,  rm.duplicates = TRUE)
Rules <- apriori(transactions, parameter = list(supp = 0.45, conf = 0.50, target = "rules"))

返回结果:

> inspect(Rules)
   lhs        rhs       support confidence     lift
1  {}      => {11}    0.6153846  0.6153846 1.000000
2  {}      => {56789} 0.6153846  0.6153846 1.000000
3  {}      => {1}     0.6153846  0.6153846 1.000000
4  {}      => {10}    0.6923077  0.6923077 1.000000
5  {}      => {0}     0.9230769  0.9230769 1.000000
6  {11}    => {56789} 0.6153846  1.0000000 1.625000
7  {56789} => {11}    0.6153846  1.0000000 1.625000
8  {11}    => {0}     0.6153846  1.0000000 1.083333
9  {0}     => {11}    0.6153846  0.6666667 1.083333
10 {56789} => {0}     0.6153846  1.0000000 1.083333
11 {0}     => {56789} 0.6153846  0.6666667 1.083333
12 {1}     => {0}     0.6153846  1.0000000 1.083333
13 {0}     => {1}     0.6153846  0.6666667 1.083333
14 {10}    => {0}     0.6923077  1.0000000 1.083333
15 {0}     => {10}    0.6923077  0.7500000 1.083333
16 {11, 56789} => {0}     0.6153846  1.0000000 1.083333
17 {0, 11}    => {56789} 0.6153846  1.0000000 1.625000
18 {0, 56789} => {11}    0.6153846  1.0000000 1.625000

现在,我想区分一下规则 13 的项目

13 {0} =&gt; {1} 0.6153846 0.6666667 1.083333

{0} =&gt; {1} 表示,0 在维度 "GHI" 中的值意味着 1"JKL" 中的值,反之亦然?

那么,有没有一种方法可以获取规则对象中返回的项集值的列名/id?

【问题讨论】:

  • 你能发一个小例子吗?
  • @RomanLuštrik :我添加了一个小例子。感谢您的关注。
  • @SimonO101 :谢谢,我已经添加了正在执行的代码。我在rules 类中找不到任何方法,它可以返回这些项集值所属的列名/ID。
  • @srbhkmr 我们需要一些示例代码,我们可以运行这些代码来制作类似的对象。我们无权访问input.csv,因此我们无法运行它。它不必与您的完全相同,只要能充分说明您的问题即可。请在reproducible examples 上查看本指南。谢谢。
  • @SimonO101 :是的,我很快会想出一个简短的可重现示例,但要点是 - 我的数据集中的两列共享来自同一域的值,我想在何时区分它们我把它们放在规则项集中。

标签: r data-mining apriori arules


【解决方案1】:

lhs = 左侧,rhs = 右侧

读作lhs =&gt; rhs

{0} =&gt; {1} 表示:如果事务包含0,那么它在某处也有1

但是,由于您没有对数据进行适当的预处理,因此结果毫无意义。你的数据在我看来绝对不像basket 输入格式。

【讨论】:

  • 能否请您详细说明一下,我错过了什么样的预处理?或者为什么它不是正确的购物篮输入格式?谢谢,
  • 查看R 示例。 AFAICT,输入格式是在一行中读取“Spaghetti,Tomato,Basil”,如果客户购买了这三个项目,如果他买了这三个项目,则输入“ToiletPaper”......您的客户是否都购买了 6 个项目,为什么“0”项如此受欢迎?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2022-01-05
  • 2016-01-13
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多