データを予測するために、ガウス過程回帰 (GPR) 操作にscikit Learn を使用しています。私のトレーニングデータは次のとおりです。
x_train = np.array([[0,0],[2,2],[3,3]]) #2-D cartesian coordinate points
y_train = np.array([[200,250, 155],[321,345,210],[417,445,851]]) #observed output from three different datasources at respective input data points (x_train)
平均と分散/標準偏差を予測する必要があるテスト ポイント (2-D) は次のとおりです。
xvalues = np.array([0,1,2,3])
yvalues = np.array([0,1,2,3])
x,y = np.meshgrid(xvalues,yvalues) #Total 16 locations (2-D)
positions = np.vstack([x.ravel(), y.ravel()])
x_test = (np.array(positions)).T
ここで、GPR ( GausianProcessRegressor
) フィットを実行した後 (ここでは、ConstantKernel と RBF の積が のカーネルとして使用されGaussianProcessRegressor
ます)、次のコード行によって平均と分散/標準偏差を予測できます。
y_pred_test, sigma = gp.predict(x_test, return_std =True)
予測平均 ( y_pred_test
) と分散 ( sigma
) を出力しているときに、コンソールに次の出力が出力されます。
予測値 (平均) では、内部配列内に 3 つのオブジェクトを含む「ネストされた配列」が出力されます。内部配列は、各 2 次元テスト ポイント位置での各データ ソースの予測平均値であると推測できます。ただし、印刷された差異には、16 個のオブジェクト (おそらく 16 個のテスト位置ポイント) を持つ単一の配列のみが含まれています。分散が推定の不確実性を示していることはわかっています。したがって、各テスト ポイントでの各データ ソースの予測分散を期待していました。私の予想は間違っていますか?各テスト ポイントで各データ ソースの予測分散を取得するにはどうすればよいですか? 間違ったコードが原因ですか?