我的训练数据集有大约 200,000 条记录,我有 500 个特征。(这些是来自零售组织的销售数据)。大多数特征是 0/1,并存储为稀疏矩阵。
目标是预测购买大约 200 种产品的概率。因此,我需要使用相同的 500 个特征来预测 200 种产品的购买概率。由于 glmnet 是创建模型的自然选择,因此我考虑为 200 种产品并行实施 glmnet。(因为所有 200 个模型都是独立的)但是我坚持使用 foreach。我执行的代码是:
foreach(i = 1:ncol(target)) %dopar%
{
assign(model[i],cv.glmnet(x,target[,i],family="binomial",alpha=0,type.measure="auc",grouped=FALSE,standardize=FALSE,parallel=TRUE))
}
model 是一个列表 - 有 200 个模型名称的列表,我想在其中存储相应的模型。
以下代码有效。但它没有利用并行结构,大约需要一天才能完成!
for(i in 1:ncol(target))
{ assign(model[i],cv.glmnet(x,target[,i],family="binomial",alpha=0,type.measure="auc",grouped=FALSE,standardize=FALSE,parallel=TRUE))
}
有人可以指出我在这种情况下如何利用并行结构吗?