【问题标题】:Association Rule mining in R - arules package and r studioR - arules 包和 r studio 中的关联规则挖掘
【发布时间】:2015-05-21 13:16:49
【问题描述】:

我正在挖掘包含 14 种商品的 1000 笔交易的数据集中的模式。根据是否购买了该产品,每笔交易在产品列中都有 0 或 1。大多数变量的值为 0。

当我在这个数据集上使用先验算法时,最重要的规则是针对未购买的产品,例如: {var1=0, var2=0,var3=0} => {var4=0} 但是我更想知道哪些产品是一起购买的。

数据集: 反式 var1 var2 var3 var4 1 1 0 1 1 2 0 0 0 1 3 0 0 1 0 4 0 0 0 1 5 1 0 1 0 6 1 0 0 0

rules <- apriori(dataset,
 parameter = list(minlen=3, supp=0.002, conf=0.2),
 appearance = list(rhs=c("var1=1","var2=1","var3=1"),
 lhs=c("var1=1","var2=1","var3=1"),
 default="none"),
 control = list(verbose=F))

首先,当我尝试运行它时,R studio 崩溃了。 第二点,我有兴趣将这段代码运行为:

rules <- apriori(dataset,
 parameter = list(minlen=3, supp=0.002, conf=0.2),
 appearance = list(rhs!=c("var1=0","var2=0","var3=0"),
 lhs!=c("var1=0","var2=0","var3=0"),
 default="none"),
 control = list(verbose=F))

这是出错了!!

区别:!= 和 0 而不是 1 这样我就只在购买的物品上获得图案,而不是在未购买的物品上。

提前致谢!!

【问题讨论】:

    标签: r analytics data-mining


    【解决方案1】:

    我能够找到解决此问题的解决方法:

    我将数据框更改为矩阵,我不再获得未购买项目的模式。也许这就是算法的工作方式,或者(希望)我的方法有一些错误。

    m <- as.matrix(dataset[,-1]) # removing the transaction id column
    names(m) <- paste("Transaction " ,rownames(dataset))
    rules.all <- apriori(as(m,"transactions"),parameter = 
                               list(support = 0.1, confidence = 0.8))
    inspect(rules.all)
    rules.sorted <- sort(rules.all, by="lift")
    inspect(rules.sorted)
    subset.matrix <- is.subset(rules.sorted, rules.sorted)
    subset.matrix[lower.tri(subset.matrix, diag=T)] <- NA
    redundant <- colSums(subset.matrix, na.rm=T) >= 1
    which(redundant)
    plot(rules.all)
    

    谢谢!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2015-04-29
      • 1970-01-01
      • 2019-03-22
      • 2014-11-11
      • 2015-05-22
      相关资源
      最近更新 更多