Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中处理海量数据和建立模型_R_H2o_R Bigmemory - Fatal编程技术网

如何在R中处理海量数据和建立模型

如何在R中处理海量数据和建立模型,r,h2o,r-bigmemory,R,H2o,R Bigmemory,我一直在尝试为数据集构建一个模型,该数据集在R中包含7000万条记录。我尝试了所有可能的方法来构建一个类似于集群的模型,使用ff库、h2o(这会给我带来错误)和bigmemory以及biglayments包。我无法使用R和我尝试过的选项来处理如此庞大的数据 你能不能给我建议除此之外的任何工作选项,这样我就可以用它来构建模型了。我的笔记本电脑是4GB内存和64位处理器。顾名思义,机器学习需要一台机器(PC)。更重要的是,它需要一台适合特定工作的机器。尽管有一些技术可以解决这个问题: 1.下采样 大

我一直在尝试为数据集构建一个模型,该数据集在
R
中包含7000万条记录。我尝试了所有可能的方法来构建一个类似于
集群
的模型,使用
ff
库、
h2o
(这会给我带来错误)和
bigmemory
以及
biglayments
包。我无法使用
R
和我尝试过的选项来处理如此庞大的数据


你能不能给我建议除此之外的任何工作选项,这样我就可以用它来构建模型了。我的笔记本电脑是4GB内存和64位处理器。

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

1.下采样 大多数情况下,机器学习不需要所有数据,您可以对数据进行采样,得到一个小得多的数据,可以在笔记本电脑上使用

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

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

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

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

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

4.云解决方案 如今,云解决方案非常流行,您可以将工作转移到 用于数据操作和建模的云

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

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

对于个人项目,一个32gb的RAM和i7CPU就足以开始机器学习了。Titan GPU将在某些机器学习方法(例如xgboost、lightgbm keras等)上提高速度


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

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

1.下采样 大多数情况下,机器学习不需要所有数据,您可以对数据进行采样,得到一个小得多的数据,可以在笔记本电脑上使用

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

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

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

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

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

4.云解决方案 如今,云解决方案非常流行,您可以将工作转移到 用于数据操作和建模的云

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

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

对于个人项目,一个32gb的RAM和i7CPU就足以开始机器学习了。Titan GPU将在某些机器学习方法(例如xgboost、lightgbm keras等)上提高速度


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

由于
R
使用RAM,因此需要处理4GB的限制。我担心在笔记本电脑中无法处理如此大的数据集…为什么不将数据集移动到sqlite表中,然后使用RSQLite或sqldf进行处理?有两种选择:获取更多RAM,例如,您可以租用Amazon ECII实例。或者在数据的子集上构建模型,并使用其余部分进行模型验证。我推荐后者。因为
R
使用RAM,所以需要处理4GB的限制。我担心在笔记本电脑中无法处理如此大的数据集…为什么不将数据集移动到sqlite表中,然后使用RSQLite或sqldf进行处理?有两种选择:获取更多RAM,例如,您可以租用Amazon ECII实例。或者在数据的子集上构建模型,并使用其余部分进行模型验证。我推荐后者。也许我会尝试更多的样品来让模型工作。也许我会尝试更多的样品来让模型工作。