R падает, когда cspade обучается на большом наборе данных
Приведенные ниже коды работают для извлечения последовательностей с использованием алгоритма 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", "stackru"),
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))
Проблема в том, что мои фактические данные составляют ~2 миллиона строк, а последовательность увеличивается до ~20 для каждого человека. Используя приведенный выше код, cspade быстро потребляет всю оперативную память и R вылетает. У кого-нибудь есть советы о том, как выполнять анализ последовательности на больших наборах данных, таких как мой? Спасибо!
0 ответов
Сколько уникальных идентификаторов у вас есть в df$sequence
? Похоже, в последнем столбце вашего образца набора данных есть 3 варианта последовательности. Как вы думаете, последовательности до 20 необходимы? Одна вещь, которую вы могли бы сделать, это установить maxlen
параметр в вашем cspade
вызовите функцию, например, 4 или 5, и оцените свою прогнозирующую точность, предполагая, что это то, что вам нужно.
Так что у вас было бы что-то вроде seq <- cspade(df.trans, parameter = list(support = 0.2, maxlen = 4),control = list(verbose = TRUE))
,
надеюсь, это поможет