Мой учебный набор данных имеет около 200 000 записей, и у меня есть 500 функций. (Это данные о продажах в розничной организации). Большинство функций - 0/1 и хранится как разреженная матрица.Выполнение glmnet параллельно в R
Целью является предсказать вероятность покупки около 200 продуктов. Итак, мне нужно будет использовать те же 500 функций, чтобы предсказать вероятность покупки для 200 продуктов. Поскольку glmnet - естественный выбор для создания модели, я подумал о параллельном внедрении glmnet для 200 продуктов. (Так как все 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))
}
модель представляет собой список - имея список 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))
}
Может ли кто-нибудь указать мне, как использовать параллельную структуру в этом случае?
вы зарегистрировались параллельно бэкенд во втором случае? Wh ich один? Вы хотите работать на одном многоядерном компьютере или в кластере? –
Для второго - я использовал параллельную опцию в glmnet. Из того, что я понимаю, он использует это для параллелизации CV. Я работаю на одном многоядерном компьютере (четырехъядерный ядро с 16-гигабайтным баром) – Rouse