我想使用R中的GA来优化eps-regression(SVR)中的三个参数(gamma,cost和epsilon)。这就是我所做的。
library(e1071)
data(Ozone, package="mlbench")
a<-na.omit(Ozone)
index<-sample(1:nrow(a), trunc(nrow(a)/3))
trainset<-a[index,]
testset<-a[-index,]
model<-svm(V4 ~ .,data=trainset, cost=0.1, gamma=0.1, epsilon=0.1, type="eps-regression", kernel="radial")
error<-model$residuals
rmse <- function(error) #root mean sqaured error
{
sqrt(mean(error^2))
}
rmse(error)
在这里,我将cost,gamma和epsilon分别设置为0.1,但我不认为它们是最好的值。所以,我想使用遗传算法来优化这些参数。
GA <- ga(type = "real-valued", fitness = rmse,
min = c(0.1,3), max = c(0.1,3),
popSize = 50, maxiter = 100)
在这里,我使用RMSE作为适应度函数。但我认为健身功能必须包括要优化的参数。但是,在SVR中,目标函数太复杂了,无法用R代码写出来,我试图找到它很长时间但无济于事。有人同时了解SVR和GA的人,有使用GA优化SVR参数的人,请帮帮我。请。