ガウス過程回帰(GPR)を使いたくなったので、とりあえず一番簡単なデータのデータで回帰分析と信頼区間を出す方法を聞いてみた。
ここからもうちょっと勉強します。
カーネルはDotProduct()とWhiteKernel()を使うといいらしい。
import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel import matplotlib.pyplot as plt #データ x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1) y = np.array([2, 6, 6, 9, 6]) #カーネル kernel = DotProduct() + WhiteKernel() #ガウス過程回帰 gpr = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=9) gpr.fit(x, y) #予測 x_pred = np.linspace(0, 6, 100).reshape(-1, 1) y_pred, sigma = gpr.predict(x_pred, return_std=True) #トレーニングデータのプロット plt.scatter(x, y, color='black', label='Training data') #予測結果のプロット plt.plot(x_pred, y_pred, color='blue', label='Prediction') #信頼区間のプロット plt.fill_between(x_pred.ravel(), y_pred - sigma, y_pred + sigma, color='blue', alpha=0.2, label='Confidence interval') plt.xlabel('x') plt.ylabel('y') plt.legend() plt.show()