public (NDarray, NDarray, NDarray) Transform(NDarray X) { var k = GaussProcessRegressor.RBF(this.xTrain, this.xTrain, this.Option.l, this.Option.sigma) + this.Option.noise * this.Option.noise * np.eye(this.xTrain.len); var k_s = GaussProcessRegressor.RBF(this.xTrain, X, this.Option.l, this.Option.sigma); var k_ss = GaussProcessRegressor.RBF(X, X, this.Option.l, this.Option.sigma) + 1e-8 * np.eye(X.len); var k_inv = np.linalg.inv(k); var mean_s = k_s.T.dot(k_inv).dot(this.yTrain); var cov_s = k_ss - k_s.T.dot(k_inv).dot(k_s); var res = np.random.multivariate_normal(mean_s.ravel(), cov_s); return(res, mean_s, cov_s); }
public GaussProcessSweeper(Option option) { this._option = option; this._generated = new HashSet <IDictionary <string, string> >(); this._runHistory = new List <IRunResult>(); var randomSweeperOption = new UniformRandomSweeper.Option() { Retry = option.Retry, }; this._randomSweeper = new UniformRandomSweeper(randomSweeperOption); var gpOption = new GaussProcessRegressor.Options() { l = option.L, sigma = option.Sigma, noise = option.Noise, }; this._regressor = new GaussProcessRegressor(gpOption); }