我的模型显示在这里:
我想将GA与R编程结合使用以获得最佳b。但是,当我为GA定义函数时,参数仅为b,而C.01,C.10,gamma,x.1,x.2,y是参数。那么如何使用这些在函数外部定义的参数呢?
cost_coef <- function(b) { % this is the function for GA
r <- numeric(n)
for (i in 1 : n) {
f <- b[0] + b[1] * x.1[i] + b[2] * x.2[i]
if (f < gamma) {
h.y <- 0
} else {
h.y <- 1
}
if (h.y == y[i]) {r[i] <- 0}
if (h.y - y[i] == -1) {r[i] <- C.01}
if (h.y - y[i] == 1) {r[i] <- C.10}
}
return(sum(r))
}
library(mcga)
m <- mcga(popsize = 200,
chsize = 5,
crossprob = 1,
mutateprob = 0.01,
elitism = 1,
minval = 0.0,
maxval = 999999999.9,
maxiter = 2500,
evalFunc = cost_coef)