Приведение «фактора» к «транзакциям» R при использовании Apriori - PullRequest
0 голосов
/ 08 мая 2019

Я хочу выполнить метод Apriori для столбца Cuisines в моем наборе данных.

Образец столбца Cusisine:

   [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 голосов
/ 08 мая 2019

Вы должны преобразовать свои данные в тип транзакции:

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)
...