paralleles Ausführen von glmnet in R

Mein Trainingsdatensatz enthält ungefähr 200.000 Datensätze und ich habe 500 Funktionen. (Dies sind Verkaufsdaten einer Einzelhandelsorganisation). Die meisten Features sind 0/1 und werden als dünne Matrix gespeichert.

Ziel ist es, die Kaufwahrscheinlichkeit für rund 200 Produkte vorherzusagen. Ich müsste also dieselben 500 Funktionen verwenden, um die Kaufwahrscheinlichkeit für 200 Produkte vorherzusagen. Da glmnet eine natürliche Wahl für die Modellerstellung ist, habe ich darüber nachgedacht, glmnet für die 200 Produkte parallel zu implementieren. (Da alle 200 Modelle unabhängig sind) Aber ich bin mit foreach fest. Der Code, den ich ausgeführt habe, war:

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))
}

Modell ist eine Liste - mit der Liste von 200 Modellnamen, in denen ich die jeweiligen Modelle speichern möchte.

Der folgende Code funktioniert. Aber es nutzt die parallele Struktur nicht aus und dauert ungefähr einen Tag, bis es fertig ist!

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))
}

Kann mir jemand sagen, wie man die Parallelstruktur in diesem Fall ausnutzt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage