Почему настройка алгоритма SVM с использованием сингулярных значений (SVD) очень медленная?

У меня есть большие данные из более чем 300 000 переменных и около 5000 строк. Применяя разложение по сингулярным значениям с помощью RSpectra, я получил 300 сингулярных значений. Запуск svm с настройкой гиперпараметров с использованием этих 300 переменных стал невероятно медленным. Это заняло более 17 часов с машиной с оперативной памятью 24 ГБ. Этот алгоритм работал намного быстрее, когда я запускал его с матрицей характеристик документа (dfm) из 60000 переменных и 5000 строк.

library(doMC)
start_time <- Sys.time()
registerDoMC(cores=5) 
library(e1071)
set.seed(123) #for reproducibility

svm_tuned_upsample <- tune(svm, 
                           train.x = train_svd_df[,-1], 
                           train.y = as.factor(train_svd_df$Include), 
                           kernel = "radial", 
                           type   = "C-classification", 
                           parallel= TRUE, 
                           ranges=list(cost=c(0.001, 0.01, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 5, 6, 7, 8, 10, 15), 
                                       gamma=c(0.0009, 0.001, 0.002, 0.003, 0.0035, 0.004, 0.0045, 0.005)),
                           validation.x=tune.control(sampling = "cross",cross=10)
                          ) 

Sys.time() - start_time

0 ответов

Другие вопросы по тегам