【问题标题】:R: Association Rules (arules) not writing any rules - is my dataset too small?R:关联规则(arules)没有写任何规则——我的数据集太小了吗?
【发布时间】:2018-02-01 23:13:54
【问题描述】:

我已经在线阅读了 Stack 和各种文档,但我仍然无法使用它。

我有一个包含 5,368 笔交易的数据集。它们以 Excel 表格的形式出现,其中包含一堆不同的列 - CustomerID、ItemID 和 OrderID(见下文,数据从 A1:C10 中显示)。

我有 3 个问题:

  • 具体数据需要采用什么格式?我尝试使用下面显示的所有 3 种格式来阅读它。我可以让 read.transactions 以任何这些格式读取数据,但是当我去运行 apriori 时,它只给了我 1 条规则(或者有时没有)。即使要获得该规则,我也必须将置信度设置为 0.01,并且 lhs 始终为空白。

  • 最近一次尝试,我使用了第 21 行显示的格式。我什至删除了所有单个事务(第 23 和 24 行)。然后我运行了这个语法:

sb<-read.transactions(file = "~/Downloads/sbasket.csv",sep = ",")

我想我什至尝试过:

sb<-read.transactions(file = "~/Downloads/sbasket.csv", format="single",sep=",", cols=c(1,2))
  • 您的数据集需要多大?我的数据集是 5,368 行,其中只有 366 行涉及多个事务(所以数据中的大多数行就像下面的第 6 行),所以我的整体数据中大约只有 7% 有多个项目篮子。这就是我没有规则的原因吗?这就是我尝试消除所有单一篮子订单的原因,但即使这样也无济于事。

【问题讨论】:

    标签: r statistics rstudio arules market-basket-analysis


    【解决方案1】:

    我对“arules”一无所知,但问题是否可能是它需要一个 csv 并且您正在加载一个 excel 电子表格?或许尝试使用'openxlsx'包先读取文件,然后输入到read.transactions?

    【讨论】:

    • 我不这么认为。 read.transactions 读取文件并对其进行很好的解析,但似乎 arules 无法对提供的数据做任何事情。如果只是文件扩展名,我希望 read.transactions 会引发错误。
    【解决方案2】:

    arules 可以读取格式 1 和 3。使用summary(sb) 检查项目是否正确读入。这是格式 3 的示例:

    trans_txt <- "13,19,20\n17\n1,\n16,17"
    write(trans_txt, file = "trans.txt")
    
    library("arules")
    trans <- read.transactions("trans.txt", sep = ",")
    summary(trans)
    
      transactions as itemMatrix in sparse format with
      4 rows (elements/itemsets/transactions) and
      6 columns (items) and a density of 0.2916667 
    
      most frequent items:
        17       1      13      16      19 (Other) 
         2       1       1       1       1       1 
    
      element (itemset/transaction) length distribution:
      sizes
      1 2 3 
      2 1 1 
    
      Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      1.00    1.00    1.50    1.75    2.25    3.00 
    
      includes extended item information - examples:
      labels
      1      1
      2     13
      3     16
    
    rules <- apriori(trans)
    inspect(rules)
    
         lhs        rhs  support confidence lift count
    [1]  {16}    => {17} 0.25    1          2    1    
    [2]  {19}    => {20} 0.25    1          4    1    
    [3]  {20}    => {19} 0.25    1          4    1    
    [4]  {19}    => {13} 0.25    1          4    1    
    [5]  {13}    => {19} 0.25    1          4    1    
    [6]  {20}    => {13} 0.25    1          4    1    
    [7]  {13}    => {20} 0.25    1          4    1    
    [8]  {19,20} => {13} 0.25    1          4    1    
    [9]  {13,19} => {20} 0.25    1          4    1    
    [10] {13,20} => {19} 0.25    1          4    1 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2015-05-21
      • 1970-01-01
      • 2015-07-20
      • 2017-12-05
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      相关资源
      最近更新 更多