聚类 4 个变量,1.39 亿行数据,30GB嗨,大家好,
有点困难的要求这个。 潜在客户拥有大量数据并希望分析所有数据。
当然,我们已经告诉他们抽样会更有意义。 但他们仍然想分析这一切。
我们还告诉他们,他们将需要大量 RAM,这意味着要安装服务器。 他们仍然想知道是否有可能分析他们的所有数据。
您对我们如何应对并确保 JMP 将为他们工作有什么建议? 或者,如果在这一数据量上进行聚类是不可能的,那也很高兴知道。
他们提供的数据的详细信息如下。 在这个阶段,我不想在没有决定响应他们请求的最佳方法的情况下询问更多细节。
我们希望为集群运行 10 个月的数据总量,如下所示:
行数:138734720(1.387 亿行)
列数:4
数据量:30 GB
(复制@MarcoSalfi因为今天之后我将不在办公室。)
谢谢!
菲尔
Re: 聚类 4 个变量,1.39 亿行数据,30GB所以 - TL;DR - 试着在 JMP 17 之前提出这个问题。这听起来很像他们在解决基因组学数据需求时正在做的事情。
在 JMP 16 中有这么大的东西——你需要在一个大的粉碎机上做。 如果它确实有效,它需要一段时间来进行聚类。看起来 K 手段或层次结构都不是多线程的( https://www.jmp.com/support/notes/49/280.html ) 所以他们不会从高 CPU 数量中获得任何好处。
他们可以尝试的一些事情可能是:
- 确保所有数据都是数字的并且是压缩的(即在所有内容上运行 Cols > Utilities > Compress Selected Columns)。
- 分类数据应使用 Labels to Code 进行编码
- 尝试重铸数据。 如果有一个时域(或类似时间的东西),您能否以某种逻辑方式将其分解,以便可以使用 FDE 来简化数据集,然后在 FPC 上进行聚类? 这对于传感器跟踪等很有用。
最好的,
米
Re: 聚类 4 个变量,1.39 亿行数据,30GB在更实际的层面上,他们试图用只有 4 个变量(或者它是 3 并且第 4 列是样本 ID 列)对 1 亿行进行聚类。 他们是否正在寻找行中的模式以便将它们分组? 也许有更多的变量隐藏在应该分成列的行中(如时间/日期)。 对那么多行进行聚类似乎不会产生任何价值或有意义的信息(更不用说如何可视化它了)。 如果模式是他们所追求的,那么他们可能需要将行减少为代表已知分组的附加列(因子)。
作为@MikeD_Anderson暗示,如果这是基于时间的分析,FDE 会更好地寻找随时间变化的模式而不是聚类。 需要梳理出时间/日期变量。
Re: 聚类 4 个变量,1.39 亿行数据,30GB想提一下这种大小的数据在基因组学中相当普遍,我不认为客户要求那么极端,我也不认为需要服务器。对于 17 中的新性能工作,我们主要针对宽表(您所描述的转置),但某些任务(如集群)可能仍然需要高表。
我刚刚尝试在具有 128 GB RAM 的 Windows PC 上创建一个包含随机正常数据的 138734720 x 4 表,并运行了 17 的最新版本:
- K-Means:K=100,30 次迭代需要 20 分钟并使用 44 GB RAM
- 分层:混合病房,大部分时间将 CPU 固定在 100%,16 个周期需要 3.5 小时,80 GB RAM
- 主成分分析:15 分钟
使用 K-Means 的一个技巧是为每个集群保存代表,然后对它们进行分层。