1

我正在使用该arules软件包在销售点零售数据中查找关联规则。我正在从数据库中提取交易细节,然后放入一个transaction对象中。我是新手arules,正在尝试弄清楚如何itemInfo在事务对象中填充数据框。现在,我只是引入了transactionand item IDs(都是数字),它们提供的上下文很少。我希望能够添加项目描述以及产品层次结构级别。

以下是我今天使用的过程:

  1. 数据来自数据库,格式如下:

    Transaction_ID     Item_ID
    --------------     ----------- 
    100                1
    100                2
    100                3
    101                2
    101                3
    102                1
    102                2
    
  2. 要创建transaction对象,我使用以下命令,如arules文档中所述:

    txdata <- as(split(txdata[, "Item_ID"], txdata[, "Transaction_ID"]), "transactions")
    

    注意:我发现我需要为Item_ID.

  3. 创建和查看关联规则

    rules <- apriori(txdata, parameter = list(support=0.00015, confidence=0.5))
    inspect(head((sort(rules, by="confidence")), n=5))
    

当规则回来时,它们由 列出Item_ID,这对我没有帮助。我希望能够通过ID和/或描述来显示它们。此外,希望利用arules包中内置的聚合功能。

4

1 回答 1

2

您可以使用 itemInfo 更改项目的名称。这是一个例子:

R> df <- data.frame(
   TID = c(1,1,2,2,2,3), 
   item=c("a","b","a","b","c", "b")
 )
R> trans <- as(split(df[,"item"], df[,"TID"]), "transactions")

### this is how you replace item labels and set a hierachy (here level1)
R> myLabels <- c("milk", "butter", "beer")
R> myLevel1 <- c("dairy", "dairy", "beverage")
R> itemInfo(trans) <- data.frame(labels = myLabels, level1 = myLevel1)

R> inspect(trans)
     items    transactionID
  1 {milk,                
     butter}             1
  2 {milk,                
     butter,              
     beer}               2
  3 {butter}             3

 ### now you can use aggregate()
 R> inspect(aggregate(trans, itemInfo(trans)[["level1"]]))
     items      transactionID
  1 {dairy}                1
  2 {beverage,              
     dairy}                2
  3 {dairy}                3

class? transactions您可以使用和找到更多信息? aggregate

希望这会有所帮助,迈克尔

于 2015-03-22T23:04:52.933 回答