【发布时间】:2014-03-12 11:30:28
【问题描述】:
我想使用广义序列模式算法分析一个大型数据集(2,000,000 条记录、20,000 个客户 ID、6 个名义属性)。
这要求除了时间和客户 ID 属性之外的所有属性都是二项式的。有 6 个要分析模式的名义属性,我需要使用“名义到二项”函数将它们转换为二项属性。这导致我的工作站出现内存问题(使用 16GB RAM,我将其中的 12 个分配给运行 rapidminer 的 Java 实例)。
理想情况下,我想以某种方式设置我的项目,即它临时写入磁盘或使用我的 oracle 数据库中的临时表,我的模型也可以直接从中读取数据。为了使用“写入数据库”或“更新数据库”功能,我需要在我的数据库中已经有一个现有的表,其中已经包含布尔列(如果我没记错的话)。
我尝试将二项式转换为 csv 文件的结果逐步写入本地磁盘。我开始使用具有最小差异值的标称属性,生成一个包含我的数据集 ID 和现在 7 个二项属性的 csv 文件。看到文件大小已经超过 200MB,我感到非常惊讶。这是因为 rapidminer 为二项式值“true”/“false”编写字符串。写 0/1 不是更节省内存吗?
有没有办法直接使用 oracle 数据库或使用 0/1 值而不是“true”/“false”?我的下一列将有 3000 个不同的值进行转换,这将在一场噩梦中结束......
我非常感谢有关如何更有效地使用内存或直接在数据库中工作的建议。如果有人知道如何轻松地将 Oracle 中的 varchar2 列转换为每个不同值的布尔列,那也将不胜感激!
非常感谢, 霍尔格
编辑:
我的目标是从这样的结构中得到:
column_a; column_b; customer_ID; timestamp
value_aa; value_ba; 1; 1
value_ab; value_ba; 1; 2
value_ab; value_bb; 1; 3
到这个结构:
customer_ID; timestamp; column_a_value_aa; column_a_value_ab; column_b_value_ba; column_b_value_bb
1; 1; 1; 0; 1; 0
1; 2; 0; 1; 1; 0
1; 3; 0; 1; 0; 1
【问题讨论】:
-
我的意思是二进制或布尔值。不知道为什么,但在 rapidminer 中,这些被称为二项式(不是二项式)。
标签: oracle memory transformation gsp rapidminer