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

问题描述 投票:0回答:1

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

r sequence arules
1个回答
0
投票

你在df$sequence有多少个唯一身份证?在样本数据集的最后一列中看起来有3个序列选项。你认为最多20个序列是必要的吗?您可以做的一件事是将maxlen函数调用中的cspade参数设置为4或5,并评估您的预测准确性,假设您正在追求的是什么。

所以你会有类似seq <- cspade(df.trans, parameter = list(support = 0.2, maxlen = 4),control = list(verbose = TRUE))的东西。

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.