Не удалось заставить 1D GaussianProcessRegression работать с этим сценарием - PullRequest
0 голосов
/ 04 ноября 2019

Я не уверен, почему регрессия этого гауссовского процесса не работает. Я просто скопировал из примеров. Но не знаю, почему он не может предсказать данные одного теста. Для простой одномерной регрессии уже достаточно нескольких данных.

train_X = np.atleast_2d([0, 0.2, 0.5, 1]).T
print(train_X)
print(f(train_X))

train_y = f(train_X)
print(train_y)

test_X = np.atleast_2d(np.linspace(0, 1, 100)).T
test_Y_real = f(test_X)

# fit GPR
kernel = RBF(1)
gpr = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10)

gpr.fit(train_X, train_y)
mu, cov = gpr.predict(test_X, return_cov=True)
test_y = mu.ravel()
uncertainty = 1.96 * np.sqrt(np.diag(cov))

# plotting
plt.figure()
plt.title("l=%.1f" % (gpr.kernel_.length_scale))
plt.fill_between(test_X.ravel(), test_y + uncertainty, test_y - uncertainty, alpha=0.5)
plt.plot(test_X, test_y, label="predict")
plt.plot(test_X, test_Y_real, label='real_value')
plt.scatter(train_X, train_y, label="train", c="red", marker="x")
plt.legend()
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...