2016-02-18 16 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