
Last chance! 50% off unlimited learning
Sale ends in
Samples n
points from a distribution proportional to the expected
improvement (EI) computed from a km
object.
sampleFromEI(
model,
minimization = TRUE,
n = 1,
initdistrib = NULL,
lower = rep(0, model@d),
upper = rep(1, model@d),
T = NULL
)
an object of class km
,
logical specifying if EI is used in minimiziation or in maximization,
number of points to be sampled,
matrix of candidate points.
vector of lower bounds,
vector of upper bounds,
optional scalar : if provided, it replaces the current minimum (or maximum) of observations.
A n*d
matrix containing the sampled points. If NULL
, 1000*d
points
are obtained by latin hypercube sampling,
D.R. Jones, M. Schonlau, and W.J. Welch (1998), Efficient global optimization of expensive black-box functions, Journal of Global Optimization, 13, 455-492.
# NOT RUN {
# }
# NOT RUN {
set.seed(004)
# a 9-points factorial design, and the corresponding responses
d <- 2
n <- 9
design.fact <- expand.grid(seq(0,1,length=3), seq(0,1,length=3))
names(design.fact)<-c("x1", "x2")
design.fact <- data.frame(design.fact)
names(design.fact)<-c("x1", "x2")
response.branin <- apply(design.fact, 1, branin)
response.branin <- data.frame(response.branin)
lower <- c(0,0)
upper <- c(1,1)
names(response.branin) <- "y"
# model identification
fitted.model <- km(~1, design=design.fact, response=response.branin,
covtype="gauss", control=list(pop.size=50,trace=FALSE), parinit=c(0.5, 0.5))
# sample a 30 point batch
batchSize <- 30
x <- sampleFromEI(model = fitted.model, n = batchSize, lower = lower, upper = upper)
# graphics
# displays the EI criterion, the design points in black and the EI-sampled points in red.
nGrid <- 15
gridAxe1 <- seq(lower[1],upper[1],length=nGrid)
gridAxe2 <- seq(lower[2],upper[2],length=nGrid)
grid <- expand.grid(gridAxe1,gridAxe2)
aa <- apply(grid,1,EI,model=fitted.model)
myMat <- matrix(aa,nrow=nGrid)
image(x = gridAxe1, y = gridAxe2, z = myMat,
col = colorRampPalette(c("darkgray","white"))(5*10),
ylab = names(design.fact)[1], xlab=names(design.fact)[2],
main = "Sampling from the expected improvement criterion",
axes = TRUE, zlim = c(min(myMat), max(myMat)))
contour(x = gridAxe1, y = gridAxe2, z = myMat,
add = TRUE, nlevels = 10)
points(x[,1],x[,2],pch=19,col='red')
points(fitted.model@X[,1],fitted.model@X[,2],pch=19)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab