複数の C 値を反復して上位 5 つの結果を表示する簡単な方法はありますか?
次のように ksvm をセットアップしました。
# call ksvm
model <- ksvm(as.matrix(data[,1:10]),as.factor(data[,11]),type="C-svc",kernel="vanilladot",C=100, scaled=TRUE)
# calculate a1.am
a <- colSums(model@xmatrix[[1]] * model@coef[[1]])
a
# calculate a0
a0 <- -model@b
a0
# view predictions
pred <- predict(model,data[,1:10])
pred
# get model accuracy
sum(pred == data[,11]) / nrow(data)
C パラメーターの範囲 (たとえば 0.00001 ~ 10000000) 内のすべての値を繰り返し処理し、上位 5 つだけを出力する簡単な方法があるかどうかを知りたいですか?
私はRが初めてですが、次のようなことをしたいと思います:
allC = c(0.0001:10000000)
results=list()
for(i in 1:length(allC)){
model <- ksvm(as.matrix(data[,1:10]),as.factor(data[,11]),type="C-svc",kernel=vanilladot,C=allC[[i]],scaled=TRUE)
results[[i]]=data.table(kernel=vanilladot,accuracy=sum(pred == data[,11]) / nrow(data))
}
rbindlist(results)