線形重回帰モデルでGPRをして信頼区間を出すのがこちら。
import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel # データの定義 x = np.array([1, 2, 3, 4, 5]) x2 = np.array([2, 6, 6, 9, 6]) y = np.array([1, 3, 4, 7, 9]) # 特徴量を列方向に結合する X = np.column_stack((x, x2)) # カーネルの定義 kernel = DotProduct() + WhiteKernel() # モデルのインスタンスを生成 model = GaussianProcessRegressor(kernel=kernel) # データを使ってモデルを学習 model.fit(X, y) # 新しいデータに対して予測と信頼区間の計算を行う new_x = np.array([[6, 4], [2, 5]]) y_pred, y_std = model.predict(new_x, return_std=True) # 予測値と信頼区間を出力する print("予測値:", y_pred) print("信頼区間:", y_pred - 1.96 * y_std, y_pred + 1.96 * y_std)
予測値: [10.36619639 3.10052405] 信頼区間: [7.71808105 1.60052635] [13.01431173 4.60052175]