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)),

надеюсь, это поможет

Другие вопросы по тегам