我正在尝试svmpath
包,它应该为训练好的SVM找到最佳超参数,而不需要在数据的不同子集上进行多次运行。更重要的是,它的计算复杂程度较低(根据其docs)。
然而,似乎一下子要求大量的内存。
最小的工作示例:
library(data.table)
library(svmpath)
# Loaded svmpath 0.953
features <- data.table(matrix(runif(100000*16),ncol=16))
labels <- (runif(100000) > 0.7)
svmpath(x=features,y=labels)
# Error in x %*% t(y) : requires numeric/complex matrix/vector arguments
svmpath(x=as.matrix(features),y=labels)
# Error: cannot allocate vector of size 74.5 Gb
library(kernlab)
ksvm(as.matrix(features),y=labels,kernel=vanilla)
# runs
检查训练功能只会显示一条可能大的行,Kscript <- K * outer(y, y)
。事实上,这似乎是罪魁祸首:runif(100000) %o% runif(100000)
产生同样的错误。
是否有任何易于在R中实施的快速修复工具?
答案 0 :(得分:0)
显然,它没有找到最佳的C(成本)值。 但是,它列出了您应该按顺序尝试的所有C值 使用N折叠交叉验证或测试数据集找到最佳的。