我有超过 300,000 个变量和大约 5000 行的大数据。通过使用 RSpectra 应用奇异值分解,我检索了 300 个奇异值。通过使用这 300 个变量来运行带有超参数调整的 svm 变得非常慢。使用 24GB RAM 的机器花费了 17 个多小时。当我使用包含 60,000 个变量和 5000 行的文档特征矩阵 (dfm) 运行该算法时,它的运行速度要快得多。
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