我想在数据集上的“美食”列上执行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方法?
答案 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)