首页 > 解决方案 > 使用 Apriori 时将“因素”强制转换为“事务”R

问题描述

我想对我的数据集的美食列执行 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"))

但是我不断得到:

没有将“因素”强制为“交易”的方法或默认值</p>

这里出了什么问题?

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

如果是,我应该在什么类型的列上使用先验方法?

标签: ranalyticsapriori

解决方案


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

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)

推荐阅读