построить - для CAFA5, пока для сплита 10:90 трейнинг сета. Получаются такие объемы:
Train data - Features (эмбеддинги белков) 14224 rows x 1024 columns
Train data - Targets ( термины GO): 14224 rows x 1499 columns
Test data - Features (эмбеддинги белков): 128022 rows x 1024 columns
Test data - Targets ( термины GO): 128022 rows x 1499 columns
Таргеты - бинарные - 0/1
Модель - logistic regression (Ridge)
Не нашла как сделать в R по аналогии с sklearn - сразу для всех таргетов, поэтому делаю на каждый отдельно и склеиваю в общую матрицу
Y_pred_test <- do.call(cbind, lapply(colnames(Y_train_data)[1:4], function(col) {
cvfit <- cv.glmnet(X_train_data, Y_train_data[, col], alpha = 0, family = "binomial")
Yi_pred_test <- predict(cvfit, newx = X_test_data, s = "lambda.1se", type = "response")
colnames(Yi_pred_test) <- col
Yi_pred_test
}))
Но вот эта конструкция - сейчас 4 таргета только - обрабатывается 9 минут, а на 8 таргетов уже память вылетает (30 Гб РАМ на каггле). Да и если забить на память все равно не реально долго получится на 1500 таргетов. На питоне такой же объем при той же модели у Александра @Alexander_V_C считается 9 секунд!!
Не могу понять что не так((( Может кто разбирается?
@biostat_r
Думаю, точно такой же модели на питоне нету, поэтому такая разница. https://pypi.org/project/glmnet/ и R-овская версия разработаны одними и теми же людьми и внутри содержат один и тот же фортрановский код, так что разнице в скорости работы неоткуда взяться. Надо брать реальные данные и полный код на R/пихтоне, у меня пока такие замеры на фейковых данных и по памяти ничего не падает (потребление в пределах 7 Гб) https://gist.github.com/statist-bhfz/545238bd105e931c20737f7d7a3e695a
Обсуждают сегодня