我正在尝试在R中的arulesSequences包中运行cspade函数。在使用read_baskets成功读入我的事务之后,我尝试针对我读入的事务对象执行cspade函数。
但是,当我执行命令时,我收到一个错误:系统调用失败。具体来说,这是输出。
preprocessing ... 1 partition(s), 1.2 MB [0.23s]
mining transactions ...Error in cspade(table, parameter = list(support = 0.1), control = list (verbose = TRUE)) :
system invocation failed
“挖掘事务”的存在表明cspade代码中的以下函数调用失败。
if (system2(file.path(exe, "spade"), args = c("-i", file,
"-s", parameter@support, opt, "-e", nop, "-o"), stdout = out))
stop("system invocation failed").
作为参考,我可以使用示例zaki数据集成功生成序列。
有没有人知道为什么这个命令可能会失败?
谢谢,
斯图尔特
答案 0 :(得分:2)
http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Sequence_Mining/SPADE#Caveats
请参阅上面的链接,警告部分并降低支持阈值。
答案 1 :(得分:-2)
我有同样的问题,我减少了支持(放0),仍然无法正常工作。但想出了另一个解决方案: 我改变了数据大小(更少的行),它的工作原理。 所以,例如,如果你可以将你的数据集分成2个半尺寸的部分,并将每个部分的交易数据设为x_1和x_2,
frequent_pattern_1< - cspade(x_1,parameter = list(support = 0)) frequent_pattern_2< - cspade(x_2,parameter = list(support = 0))
然后获得分析每个数据集以获得所有数据的绝对支持。
获得绝对支持值 support_x_1< -support(frequent_pattern_1,x_1,type = c(“absolute”),control = NULL) support_x_2< -support(frequent_pattern_2,x_2,type = c(“absolute”),control = NULL)
然后找到匹配的序列并总结匹配序列的支持。