【问题标题】:arules substitution of item values in RR中项目值的规则替换
【发布时间】:2018-06-17 11:26:28
【问题描述】:

所以,我正在尝试让 arules 处理我的数据,我有 transaction_ID、Item_name 和 Item_ID。但是如果我为 item_name 和 transaction_ID 调用 apriori 函数,太慢了,但是如果我用 item_id 和 transaction_ID 调用它真的很快。那么,有没有办法用 item_id 创建规则,然后用 id 代替它的真实姓名? 这是一个可以使用的代码示例:

library(arules)
library(arulesViz)

products <- c(1,1,1,3,4,5,6,4)
transaction_id <- c(2,2,3,3,3,4,4,4)
dataset <- data.frame(products ,transaction_id)
dataset
transaction <- as(split(dataset[,"products"],dataset[,"transaction_id"]), "transactions")

rule <- apriori(transaction, parameter = list(supp = 0.001, conf = 0.8))

inspect(rule)

products_id <- c(1,3,4,5,6)
names <- c("nail","Black Hammer 127","White desk 12","green desk","pink car")

cod <- data.frame(products = products_id, names)

【问题讨论】:

    标签: r transactions rules apriori market-basket-analysis


    【解决方案1】:

    最好的方法是使用itemLabels函数替换交易中的物品标签:

    itemLabels(transaction)
      [1] "1" "3" "4" "5" "6"
    itemLabels(transaction) <- c("nail","Black Hammer 127","White desk 12","green desk","pink car")
    rule <- apriori(transaction, parameter = list(supp = 0.001, conf = 0.8))
    inspect(rules)
          lhs                                 rhs                support   confidence
     [1]  {Black Hammer 127}               => {nail}             0.3333333 1 
     ...
    

    split 相当慢。 ?transactions 中的示例说明了使用拆分:

    ## Note: This is very slow for large datasets. It is much faster to 
    ## read transactions in this format from disk using read.transactions() 
    ## with format = "single".
    

    【讨论】:

    • 这适用于这个例子,但对于我的真实数据,itemLabels() 是在指责 . dimnames&lt;-(*tmp*, value = dn) 中的错误:dimnames 的长度不等于对象的维度。在 read.transaction() 中,我的数据必须是事务文件,但我无法创建它
    • 也许您的数据中从未出现过项目,因此交易中的项目较少。此外,顺序可能不同。这是替换项目标签的更强大的方法:itemLabels(transaction) &lt;- cod$names[match(itemLabels(transaction), cod$products)]
    • 是的,你是对的,就是尺寸。谢谢你的建议!现在,我将学习如何创建一个可读的事务文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2020-10-24
    • 2019-10-17
    • 2011-10-04
    • 2016-06-10
    • 1970-01-01
    相关资源
    最近更新 更多