使用 Apriori 时将 "factor" 强制转换为 "transactions" R
Coercing "factor" to "transactions" R when using Apriori
我想对我的数据集上的 Cuisines 列执行 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"))
然而我不断得到:
no method or default for coercing “factor” to “transactions”
这里出了什么问题?
在我的数据集中的这一列上使用 Apriori 方法是否不合逻辑?
如果是,我应该在什么类型的列上使用先验方法?
您必须将您的数据转换为交易类型:
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)
我想对我的数据集上的 Cuisines 列执行 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"))
然而我不断得到:
no method or default for coercing “factor” to “transactions”
这里出了什么问题?
在我的数据集中的这一列上使用 Apriori 方法是否不合逻辑?
如果是,我应该在什么类型的列上使用先验方法?
您必须将您的数据转换为交易类型:
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)