我一直在尝试为R
中包含7000万条记录的数据集构建模型。我尝试了所有可能的选项来构建像clustering
这样的模型,使用ff
库,h2o
(这会让我误解)和bigmemory
和biganalytics
包好。我无法使用R
处理我尝试的选项来处理如此庞大的数据。
请您建议我除此之外的任何工作选项,以便我可以使用它来构建模型。我的笔记本电脑是4GB RAM和64位处理器。
答案 0 :(得分:4)
顾名思义,机器学习需要一台机器(PC)。更重要的是,它需要适合特定工作的机器。即使有一些技巧可以处理它:
大多数情况下,您不需要机器学习的所有数据,您可以对数据进行采样,以获得可以在笔记本电脑上使用的更小的数据。
原因是,您可能需要使用某些工具(例如数据库)对笔记本电脑进行取样工作。
取决于您拥有的变量数量,每条记录可能不是唯一的。您可以通过关键变量“聚合”数据。每个唯一的变量组合称为数据点,重复数量可以用作聚类方法的权重。
但取决于所选择的聚类方法和项目目的,这些聚合数据可能无法为您提供最佳模型。
假设您拥有一个csv文件中的所有数据,您可以通过指定适合您笔记本电脑的行,使用data.table::fread
以块的形式读取数据。
https://stackoverflow.com/a/21801701/5645311
您可以分别处理R中的每个数据块,并在这些数据上构建模型。最终,您将获得许多聚类结果作为一种装袋方法。
如今,云解决方案非常受欢迎,您可以将工作转移到 用于数据处理和建模的云。
如果您对整个项目感觉相当昂贵,那么如果您无法在本地找到合适的工具进行采样工作,则可以使用云进行下采样,然后再返回到笔记本电脑。
这是我首先想到的方式。新机器可能仍无法处理您的数据(取决于数据中的变量数量)。但它肯定会使其他计算更有效率。
对于个人项目,带有i7 CPU的32GB RAM将足以启动机器学习。 Titan GPU可以为您提供一些机器学习方法(例如xgboost,lightgbm keras等)的速度提升。
出于商业目的,服务器解决方案或群集解决方案更有意义处理群集作业中的70米记录数据。