1

我一直在尝试为包含 7000 万条记录的数据集构建一个模型R。我尝试了所有可能的选项来构建一个模型,比如clustering,使用ff库,h2o(这让我出错)bigmemorybiganalytics包。R使用我尝试过的选项,我无法处理如此庞大的数据。

您能否建议我除此之外的任何工作选项,以便我可以使用它来构建模型。我的笔记本电脑是 4GB RAM 和 64 位处理器。

4

1 回答 1

5

顾名思义,机器学习需要一台机器(PC)。更重要的是,它需要一台适合特定工作的机器。尽管有一些技术可以处理它:

1. 下采样

大多数时候,机器学习不需要所有数据,您可以对数据进行采样以获得可在笔记本电脑上使用的小得多的数据。

当然,您可能需要使用一些工具(例如数据库)在您的笔记本电脑上进行采样工作。

2. 数据点

取决于您拥有的变量数量,每条记录可能不是唯一的。您可以通过关键变量“聚合”您的数据。每个唯一的变量组合称为一个数据点,重复的数量可以作为聚类方法的权重。

但取决于所选的聚类方法和项目的目的,这些聚合数据可能无法为您提供最佳模型。

3.分成几部分

假设您将所有数据都放在一个 csv 文件中,您可以data.table::fread通过指定适合您的笔记本电脑的行来分块读取数据。

https://stackoverflow.com/a/21801701/5645311

您可以分别处理 R 中的每个数据块,并在这些数据上构建模型。最终,作为一种装袋方法,您将获得大量的聚类结果。

4. 云解决方案

如今,云解决方案非常流行,您可以将工作转移到云端进行数据操作和建模。

如果您觉得整个项目的成本很高,您可以使用云进行下采样,然后如果您在本地找不到合适的工具进行采样工作,则可以返回到您的笔记本电脑。

5. 一台新机器

这是我首先想到的一种方式。新机器可能仍然无法处理您的数据(取决于数据中的变量数量)。但它肯定会让其他计算更有效率。

对于个人项目,带有 i7 CPU 的 32gb RAM 足以开始机器学习。Titan GPU 可以让您在某些机器学习方法(例如 xgboost、lightgbm keras 等)上提高速度。

出于商业目的,服务器解决方案或集群解决方案更适合处理集群作业中的 70m 记录数据。

于 2018-01-03T11:40:01.217 回答