以下代码用于使用cspade算法提取序列。
library("arulesSequences")
df <- data.frame(personID = c(1, 1, 2, 2, 2),
eventID = c(100, 101, 102, 103, 104),
site = c("google", "facebook", "facebook", "askjeeves", "stackoverflow"),
sequence = c(1, 2, 1, 2, 3))
df.trans <- as(df[,"site", drop = FALSE], "transactions")
transactionInfo(df.trans)$sequenceID <- df$sequence
transactionInfo(df.trans)$eventID <- df$eventID
df.trans <- df.trans[order(transactionInfo(df.trans)$sequenceID),]
seq <- cspade(df.trans, parameter = list(support = 0.2),
control = list(verbose = TRUE))
问题是我的实际数据是〜200万行,每个人的序列增加到~20。使用上面的代码,cspade会快速消耗所有RAM和R崩溃。任何人都有关于如何在我的大型数据集上执行序列挖掘的提示?谢谢!
答案 0 :(得分:0)
您在df$sequence
中有多少个唯一ID?在样本数据集的最后一栏中,看起来好像有3个序列选项。您是否认为最多需要20个序列?您可以做的一件事是,将maxlen
函数调用中的cspade
参数设置为4或5,并假设您所追求的是评估您的预测准确性。
所以您会遇到类似seq <- cspade(df.trans, parameter = list(support = 0.2, maxlen = 4),control = list(verbose = TRUE))
的情况。
希望有帮助