0

我已经在线阅读了 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% 有多个项目篮子。这就是我没有规则的原因吗?这就是我尝试消除所有单一篮子订单的原因,但即使这样也无济于事。

在此处输入图像描述

4

2 回答 2

0

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

于 2018-02-01T23:53:19.610 回答
0

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 
于 2018-02-06T22:05:14.640 回答