原始数据集约为75万行,包含7个变量。经过一些基本的特征工程,它变成了81个int变量。为了便于在初始阶段进行操作,我选择使用下面的脚本
将0.01%作为我的训练集sub <- sample(nrow(d), floor(nrow(d) * 0.01))
train <- d[sub, ]
test <- d[-sub, ]
构建初始模型试图在此训练数据集上进行降维/ PCA。
require(leaps)
require(MASS)
initialBasicSubSet <- regsubsets(myVariable ~ ., data = train, nvmax = 25, really.big=T)
问题是这段代码似乎永远存在。截至目前,它已运行超过9小时!因为我对R&amp; amp;数据分析想知道这是否是异常的(考虑到只有约7000条记录,其中有81个int变量)?
以下是我的笔记本电脑的配置,并希望了解使用R进行数据分析的人是否满足,或者是否应该升级到其他任何特定配置?
系统配置:
HP Pavilion dv6 Notebook PC
Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
8 GB RAM
64 bit OS - Windows 7 Home Premium
答案 0 :(得分:7)
您的计算机配置不是问题。
据我所知,您已选择(因为默认参数为method="exhaustive"
)对81个可能变量的所有25个变量子集进行穷举评估,这样您就可以这很多模型要评估:
choose(81,25) ## [1] 5.25652e+20
如果您可以每秒评估1000个型号,则需要
log10(choose(81,25)/(365*24*3600*1000)) ## 10.22 ...
大约需要10 ^ 10年才能完成。
您可以尝试method="forward"
之类的内容。或者,我对glmulti包有好运:
自动模型选择和模型平均。 为glm和其他函数提供包装器, 自动生成所有可能的模型 (在用户设置的约束下)用 指定的响应和解释变量,以及 找到一些最好的模型 信息标准(AIC,AICc或BIC)。能够 处理非常多的候选模型。 使用遗传算法找到最佳 模型时详尽的筛选 候选人不可行。
或者使用PCA,glmnet
包,或随机森林,或......