2016-02-18 15 views
0

我目前使用kernlab包中的R来将传入数据与使用SVM的一组训练数据进行分类。要做到这一点我使用一个字符串的内核,这是设置了下面的命令:R:将ksvm值输出保存到工作目录中

sk <- stringdot(length = 2, lambda = 1.1, type = "exponential", normalized = TRUE) 

我再喂校准串内核,sk,到SVM用下面的命令:

svm <- ksvm(xtrain,ytrain,type="C-svc",kernel=sk,C=10,scaled=c()) 

这会在R环境中生成一个正式的类ksvm值,然后用它来预测传入数据的分类。以下命令用于分类新数据:

predicted <- matrix(predict(svm,xtest)) 

整个过程非常漫长。如果我能够保存价值svm并将其称为预测传入数据而不必每次生成它,都可以节省大量时间。

是否有任何方法将此svm值保存到工作目录并在需要时加载它以减少计算时间?

回答

0

您可以使用dput()为:

dput(svm, "myfile.dput") 
rm(svm) 
svm <- dget("myfile.dput") 

save()

save(svm, file="myfile.RData") 
rm(svm) 
load("myfile.RData") 
+0

'dput()'似乎是解决问题的一个很好的,优雅的方式。但是,在使用'dget()'时遇到以下错误消息: '初始化错误(值,...):找不到函数“.local” 这是正常的吗?这可能是一个简单的修复。 – Futh

+0

我用'save()'写了另一个解决方案' – HubertL

+0

'save()'完美地工作! – Futh