У меня возникла проблема с запуском glmnet lasso с широким набором данных. Мои данные имеют N = 50, но p > 49000, все факторы. Поэтому для запуска glmnet мне нужно создать model.matrix, НО у меня просто закончилась память, когда я вызываю model.matrix(формулу, данные), где formula = Class ~.
В качестве обработанного примера я создам набор данных:
data <- matrix(rep(0,50*49000), nrow=50)
for(i in 1:50) {
x = rep(letters[2:8], 7000)
y = sample(x=1:49000, size=49000)
data[i,] <- x[y]
}
data <- as.data.frame(data)
x = c(rep('A', 20), rep('B', 15), rep('C', 15))
y = sample(x=1:50, size=50)
class = x[y]
data <- cbind(data, class)
После этого я попытался создать model.matrix для ввода в glmnet.
formula <- as.formula(class ~ .)
X = model.matrix(formula, data)
model <- cv.glmnet(X, class, standardize=FALSE, family='multinomial', alpha=1, nfolds=10)
На последнем этапе (X = model.matrix...) у меня закончилась нехватка памяти. Что я могу сделать?