如何处理R中的大数据和构建模型[关闭]

问题描述 投票:-1回答:1

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

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

r h2o r-bigmemory
1个回答
4
投票

顾名思义,机器学习需要一台机器(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记录数据。

© www.soinside.com 2019 - 2024. All rights reserved.