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