关于svmpath需要如此多的内存,我该怎么办?

时间:2014-06-22 04:15:14

标签: r svm

我正在尝试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中实施的快速修复工具?

1 个答案:

答案 0 :(得分:0)

显然,它没有找到最佳的C(成本)值。 但是,它列出了您应该按顺序尝试的所有C值 使用N折叠交叉验证或测试数据集找到最佳的。