当cspade在大型数据集上训练时,R崩溃

时间:2018-04-09 13:10:46

标签: r sequence arules

以下代码用于使用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崩溃。任何人都有关于如何在我的大型数据集上执行序列挖掘的提示?谢谢!

1 个答案:

答案 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))的情况。

希望有帮助