コード例 #1
0
ファイル: DistanceBO.py プロジェクト: lemelondeau/VBKS
    def one_iter(self):
        k = C(1.0) * CustomRBF(1.0) + WhiteKernel(1.0)
        gp = GaussianProcessRegressor(kernel=k, alpha=0.01, normalize_y=True, n_restarts_optimizer=10)
        gp.custom_fit(self.DXX, self.Y)
        mu, std = gp.custom_predict(self.DZZ, self.DXZ, return_std=True)
        # record the best kernel ever seen
        min_value = np.min(self.Y)
        best_ker = self.observations[np.argmin(self.Y)]
        self.record_best_ker.append(best_ker)
        # remember to reshape mu and std
        ei = self.EI(mu.reshape(-1), min_value, std.reshape(-1), 'min')
        next_i = np.argmax(ei)

        # update candidate
        if self.bayesian is None:
            self.update_candidates_nonbayesian(next_i)
        else:
            self.update_candidates_bayesian(next_i)

        return min_value