大数据从arules包转换为“交易”
R中的arules包使用类“交易”。 所以为了使用函数apriori()
我需要转换我现有的数据。 我有一个有2列和大约1.6毫米行的矩阵,并试图转换数据,如下所示:
transaction_data <- as(split(original_data[,"id"], original_data[,"type"]), "transactions")
其中original_data是我的数据矩阵。 由于我使用的是具有64GB RAM的最大AWS亚马逊机器的数据量。 过了一段时间,我得到了
结果向量超出'AnswerType'中的向量长度限制
机器的内存使用率仍然是“仅”,达到60%。 这是基于R的限制吗? 有没有什么办法可以解决这个问题,而不是使用抽样? 当仅使用1/4的数据时,转换工作正常。
编辑:正如所指出的,其中一个变量是一个因素而不是字符。 更改转换后,处理得很快且正确。
我怀疑你的问题正在出现,因为其中一个函数使用整数(而不是浮点数)来索引值。 无论如何,尺寸不是太大,所以这是令人惊讶的。 也许这些数据还有其他一些问题,例如字符作为因素?
不过,总的来说,我真的推荐使用内存映射文件,通过bigmemory
,你也可以通过bigsplit
或mwhich
分割和处理。 如果卸载数据适用于您,那么您还可以使用更小的实例大小并保存$$。 :)
上一篇: Big Data convert to "transactions" from arules package
下一篇: Automated optimization of PNGs inside CSS files (data URIs) using ZopfliPNG