3

我正在使用一个数据集,每个序列中有数百个事件。我正在尝试使用TraMineR. 例如,这是我要编写的代码:

# Frequent subsequences:
fsubseq <- seqefsub(weaver, minSupport = 0.05, maxK = 4)
fsubseq <- seqentrans(fsubseq)
fsb <- fsubseq[fsubseq$data$nevent > 1]
plot(fsb[1:20], col = "cyan")

# Sequential association rules:
rules <- TraMineR:::seqerules(fsubseq)
rules[order(rules$Lift, decreasing = TRUE)[1:25], 1:4]

只要我将 maxK 设置为 1-3,这通常是可行的,但是当我移动该值时,计算需要数小时甚至数天。我可以调整任何特定参数来加快这些计算吗?

4

1 回答 1

3

计算时间与以下因素密切相关:

  • 每个序列的事件数。该算法设计用于每个序列的少量事件(通常<6)和许多序列。您可以尝试删除一些不是您主要兴趣的事件或分析事件组。我猜想事件数量和计算时间之间的关系至少是指数级的。每个序列有超过 10 个事件,它可能真的很慢。
  • 最低支持。在最低支持率较低的情况下,子序列的可能数量会变得非常大。尝试将其设置为更高的值。

希望这可以帮助。

于 2015-03-01T20:03:07.183 回答