параллельное выполнение glmnet в R

В моем наборе тренировочных данных около 200 000 записей, а у меня 500 функций. (Это данные о продажах из розничной организации). Большинство функций 0/1 и хранится в виде разреженной матрицы.

Цель состоит в том, чтобы предсказать вероятность покупки приблизительно для 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))
}

Может кто-нибудь указать мне, как использовать параллельную структуру в этом случае?

Ответы на вопрос(2)

Ваш ответ на вопрос