我使用GPyOpt优化了一个多维模型
opt = BayesianOptimization(f=my_eval_func, domain=domain, constraints=constraints)
opt.run_optimization(max_iter=20)在这样做之后,我得到了与opt.x_opt的最优协调,以及使用opt.fx_opt的模型成本。然而,我也对fx在这个最佳位置的变化感兴趣。我怎样才能做到这一点?
发布于 2019-04-05 23:21:09
通过将内部GP模型应用于优化的x_opt变量,即m.model.predict(m.x_opt),我自己解决了这个问题。然而,我认为这些结果是在一些标准化和偏移的坐标空间中进行的,需要对预期的结果进行线性变换,例如:
def get_opt_est(m):
X = []
pred_X = []
for x,y in zip(m.X, m.Y):
X.append(y[0])
pred_X.append(m.model.predict(x)[0][0])
scale = (np.max(X) - np.min(X))/(np.max(pred_X) - np.min(pred_X))
offset = np.min(X) - np.min(pred_X)*scale
pred = m.model.predict(m.x_opt)
return(pred[0][0]*scale+offset,pred[1][0]*scale)
print("Predicted loss and variance is",get_opt_est(opt))https://stackoverflow.com/questions/55503759
复制相似问题