【python】sklearnのGaussianProcessRegressorを使って線形重回帰モデルの信頼区間を計算する【chatGPTメモ】

線形重回帰モデルで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]