大数据从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 ,你也可以通过bigsplitmwhich分割和处理。 如果卸载数据适用于您,那么您还可以使用更小的实例大小并保存$$。 :)

链接地址: http://www.djcxy.com/p/31855.html

上一篇: Big Data convert to "transactions" from arules package

下一篇: Automated optimization of PNGs inside CSS files (data URIs) using ZopfliPNG