私は GPR を理解しようとしており、いくつかの値を予測するためにテストしています。応答は PCA の最初のコンポーネントであるため、外れ値のない比較的良好なデータが得られます。予測値も PCA(n=2) から取得されますが、予測値の列は StandardScaler().fit_transform で標準化されています。以前の投稿でより優れていることがわかりました。予測変数は標準化されているため、RBF カーネルを使用して 1**2 を乗算し、ハイパーパラメーターを適合させます。問題は、モデルが予測子に完全に適合し、テスト データにほぼ一定の値を与えることです。セットは 463 ポイントのセットであり、トレーニング データに対して 20 ~ 100 または 200 をランダム化し、Whitekernel() またはアルファ値を追加しても、同じ結果が得られます。私は何か間違ったことをしていることはほぼ確実ですが、何が見つかりませんか? ここ'
k1 = cKrnl(1**2,(1e-40, 1e40)) * RBF(2, (1e-40, 1e40))
k2 = cKrnl(1**2,(1e-40, 1e40)) * RBF(2, (1e-40, 1e40))
kernel = k1 + k2
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10,normalize_y = True)
gp.fit(x_train, y_train)
print("GPML kernel: %s" % gp.kernel_)
出力:
GPML kernel: 1**2 * RBF(length_scale=0.000388) + 8.01e-18**2 * RBF(length_scale=2.85e-18)
トレーニング データ:
ありがとうございます!!!