0
我一直試圖使用ksvm包(kernlab)分析成本參數c和gamma參數之間的關係。我已寫入的程序如下:分析svm的成本和gamma之間的關係(不允許使用NAs)錯誤消息
功能(數據) { 庫(kernlab)
p<-ncol(data)
y<-data[,p]
x<-data[,-p]
Rad.gamma<-matrix(seq(exp(-10),exp(1),length=20))
Con.c<-matrix(c(0.1,0.5,1.5),nrow=1)
mat<-expand.grid(Rad.gamma,Con.c)
Output<-data.frame(0,nrow=80,ncol=2)
for(i in 1:80)
{
Gamma<-mat[i,1]
CC<-mat[i,2]
Svm<-ksvm(y~.,data=as.data.frame(x),
kernel="rbfdot",kpar=list(sigma=Gamma),
cross=5, C=CC, type='C-svc',prod.model=FALSE)
Output[i,1]<-error(Svm)
Output[i,2]<-cross(svm)
Output[i,3]<-nSV(svm)/nrow(data)
}
Output<-data.frame(Output)
results<-cbind(mat,Output)
colnames(results)<-c("C","Train","Cross","SVs")
results
}
我得到的錯誤是:在votematrix [
錯誤i,ret < 0] < - votematrix [i,ret < 0] + 1: NAs不允許用於下標分配
我試圖檢查一個解決方案的計算器,但我能找到的最佳答案是data.frame需要在cbind之前缺少值。我一直在用虹膜數據集測試這個函數,並且沒有缺失值。我想繪製結果並分析輸出矩陣內容的模式;這應該很簡單。問題是獲得結果表用於繪圖。
任何幫助將不勝感激。