使用Apriori时将“因素”强制为“交易” R

时间:2019-05-08 12:32:39

标签: r analytics apriori

我想在数据集上的“美食”列上执行Apriori方法。

可待因色谱柱样品:

   [4] Japanese, Sushi                                                                   
   [5] Japanese, Korean                                                                  
   [6] Chinese                                                                           
   [7] Asian, European                                                                   
   [8] Seafood, Filipino, Asian, European                                                
   [9] European, Asian, Indian                                                           
  [10] Filipino                                                                          
  [11] Filipino, Mexican            

我的代码:

install.packages("arules") 
 library("arules")

 itemsets <- apriori(dataSet$Cuisines, parameter=list(support=0.02, minlen=1, maxlen=1, target="frequent itemsets"))

但是我不断得到:

  

没有将“因素”强制转换为“交易”的方法或默认值

这里出了什么问题?

在我的数据集中的此列上使用Apriori方法是否不合逻辑?

如果是,我应该在哪种类型的列上使用apriori方法?

1 个答案:

答案 0 :(得分:0)

您必须将数据转换为交易类型:

dats <- strsplit(as.character(dats$Cuisines),',',fixed=T) # split by comma    
trans <- as(dats, "transactions")
inspect(trans)
    items                               
[1] { Sushi,Japanese}                   
[2] { Korean,Japanese}                  
[3] {Chinese}                           
[4] { European,Asian}                   
[5] { Asian, European, Filipino,Seafood}
[6] { Asian, Indian,European}           
[7] {Filipino}                          
[8] { Mexican,Filipino}

然后您可以执行apriori

itemsets <- apriori(trans, parameter=list(support=0.3))
inspect(itemsets)

有数据:

 dats <- read.table(text ="    Cuisines
       [1] 'Japanese, Sushi'                                                                   
       [2] 'Japanese, Korean'                                                                  
       [3] 'Chinese'                                                                           
       [4] 'Asian, European'                                                                   
       [5] 'Seafood, Filipino, Asian, European'                                                
       [6] 'European, Asian, Indian'                                                           
       [7] 'Filipino'                                                                          
       [8] 'Filipino, Mexican' ", header = T)