在具有4GB RAM的Latop上运行逻辑回归是否可行

时间:2016-06-14 13:10:46

标签: r dplyr amazon-redshift sparkr

我正在尝试在R上对我的数据执行逻辑回归。 我创建了所有模型变量并将它们安装到位 在我的Redshift数据库的表中。 让我们将这个数据库称为'数据库A'和表格 '表A'

问题陈述

在具有4 GB RAM的笔记本电脑上运行逻辑回归是否可行

我不想做的事

我不想等待我的查询执行, 并等待它显示所有记录。我有大约200万条记录。 我没有兴趣右键单击然后将结果保存为 一个CSV文件。我认为这非常耗时。

我的研究和dplyr包。

我已经浏览了关于将R连接到亚马逊Redshift的this博客 它讨论了通过RJDBC包建立连接。 我从个人笔记本电脑连接到Redshift。我提供的 我的笔记本电脑上的R版本供您参考。我的笔记本电脑上的version命令输出以下内容。

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          2.5                         
year           2016                        
month          04                          
day            14                          
svn rev        70478                       
language       R                           
version.string R version 3.2.5 (2016-04-14)
nickname       Very, Very Secure Dishes 

我能够创建与redshift的连接。我使用tbl函数创建了一个R对象,该对象指向我的表A'在Amazon Redshift中。 sudo代码在

之下
myRedshift <- src_postgres('Database A',
host = 'Host_name',
port = Portnumber,
user = "XXXX", 
password = "XXXX")

my.data <- tbl(myRedshift, "Table A")

这很好用。我检查了尺寸。他们是对的。

我接下来做的是

我尝试使用tbl_df函数来存储值 R中数据框中的my.data对象执行逻辑回归。 但是这次手术只运行了50多分钟。我中止了R

我还尝试将结果链接到数据框

new.data <- my.data %>% select(*)

但这给了我错误。我有超过15列,我不想要 输入每个栏目的名称。

我在网上搜索并遇到了SparkR这似乎可以帮助我 我按照this链接中提到的说明操作。但当 我在我的Windows .\bin\sparkR终端上运行cmd命令。我得到了 错误说

Access is denied
The system cannot find the file 'C:\Users\Name\AppData\Local\Temp'
The system cannot find the path specified.

我该如何纠正这个错误? 什么是在Redshift中存储我的表中数据的有效方法 我可以进行逻辑回归吗? 我知道一个unload函数输出管道分隔文件, 我应该问我的IT部门使用卸载功能?

1 个答案:

答案 0 :(得分:-1)

所以我确实有一个问题的临时解决方案

正如强调的那样,主要问题是所花费的时间,我不清楚 关于如何解释tbl函数。

帮助我dplyrRedshift一起使用的是collect功能。 然后,我可以非常轻松地使用mutatetransform。 不要使用baseR str方法,而是glimpse collect功能。它返回my.data是否是数据框,维度 以及所有变量的数据类型。

但是regressors <- my.data %>% filter(required filters) %>% select(predictor1, ..., predictor6) %>% collect 需要花费大量时间来创建预测变量。 我的模型中有6个预测变量,行数超过100万。我试图创建我的回归量

predictor1 <- my.data %>% filter(required filters) %>%
              select(predictor1) %>% collect

但这花了一个多小时。我中止了手术。我加了 预测器一个接一个

predictors took around 5 minutes to be created.
But predictors which were of type

我为所有包含超过100万条记录的6个预测变量做了这个。 &#39;数字glmnet字符需要10-15分钟才能创建。

对于建模我使用的<select id="state" name="state" class="form-control" required> <option value="" selected>--Select State--</option> <?php foreach ($state_option as $state_id => $state) { ?> <option id="state" value="<?php echo $state_id; ?>"><?php echo $state; ?></option> <?php } ?> </select> 函数运行正常。

如果有更好的方法来创建我的预测矩阵,请告诉我。