Я решил это для себя, применив внутреннюю модель 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))