3

サポート ベクター マシンを学習するには、さまざまなパラメーターを決定する必要があります。

たとえば、コストやガンマなどのパラメータがあります。

Rの「GA」パッケージと「kernlab」パッケージを使用して、SVMのシグマとガンマのパラメータを決定しようとしています。

遺伝的アルゴリズムの評価関数として精度を使用します。

次のコードを作成し、実行しました。

library(GA) 
library(kernlab) 
data(spam) 
index <- sample(1:dim(spam)[1]) 
spamtrain <- spam[index[1:floor(dim(spam)[1]/2)], ] 
spamtest <- spam[index[((ceiling(dim(spam)[1]/2)) + 1):dim(spam)[1]], ] 

f <- function(x) 
{ 
x1 <- x[1] 
x2 <- x[2] 
filter <- ksvm(type~.,data=spamtrain,kernel="rbfdot",kpar=list(sigma=x1),C=x2,cross=3) 
mailtype <- predict(filter,spamtest[,-58]) 
t <- table(mailtype,spamtest[,58]) 
return(t[1,1]+t[2,2])/(t[1,1]+t[1,2]+t[2,1]+t[2,2]) 
} 

GA <- ga(type = "real-valued", fitness = f, min = c(-5.12, -5.12), max = c(5.12, 5.12), popSize = 50, maxiter = 2) 
summary(GA) 
plot(GA) 

ただし、GA関数を呼び出すと、次のエラーが返されます。

「サポート ベクターが見つかりません。パラメータを変更してください」

なぜコードが悪いのか理解できません。

4

1 に答える 1