2017-01-10 7 views
5

投稿する前に私は多くの検索を行い、正確に私の問題かもしれないthis questionを見つけました。しかし、私は答えで提案されたものを試しましたが、残念ながらこれは修正されませんでした。私はここで新しいメンバーであるため、さらなる説明を求めるコメントを追加できませんでした。2D入力、1D出力の回帰に対してscikit-learnのGaussian Processを正しく使うにはどうすればいいですか?

とにかく、(scikit-learnのドキュメントで提供されている例を使用して)始めるにはシンプルで実際のケースで、Pythonのscikit-learnでGaussian Processesを使いたいと思います。私はXと呼ばれる2D入力セット(2つのパラメータの8つのカップル)を持っています。私は1Dアレイyに集められた8つの対応する出力を持っています。

# Inputs: 8 points 
X = np.array([[p1, q1],[p1, q2],[p1, q3],[p1, q4],[p2, q1],[p2, q2],[p2, q3],[p2, q4]]) 

# Observations: 8 couples 
y = np.array([r1,r2,r3,r4,r5,r6,r7,r8]) 

私は入力テストスペースにXを定義した:

# Input space 
x1 = np.linspace(x1min, x1max) 
x2 = np.linspace(x2min, x2max) 
x = (np.array([x1, x2])).T 

それから私は私のトレーニングデータ(X、Y)にそれをフィット、GPモデルのインスタンスを作成し、1次元の予測を行います

kernel = C(1.0, (1e-3, 1e3)) * RBF([5,5], (1e-2, 1e2)) 
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=15) 
gp.fit(X, y) 
y_pred, MSE = gp.predict(x, return_std=True) 
は私の入力空間Xをy_pred

fig = pl.figure() 
ax = fig.add_subplot(111, projection='3d') 
Xp, Yp = np.meshgrid(x1, x2) 
Zp = np.reshape(y_pred,50) 

surf = ax.plot_surface(Xp, Yp, Zp, rstride=1, cstride=1, cmap=cm.jet, 
linewidth=0, antialiased=False) 
pl.show() 

これは私が得るものです::

そして私は、3Dプロットを作るRBF[5,5]

私は何ポスターIに似たこのような何かを、取得カーネルパラメータを変更

GOT上記:

RBF[10,10]

これらのプロットでも一致していません。元の訓練ポイントからの観察(低い応答は[65.1,37]で得られ、最高は[92.3,54]で得られる)。

私は2DのGPでかなり新しくなっています(以前はPythonもやっていませんでした)ので、私はここで何か不足していると思います...どんな答えでも大変感謝しています!

+0

私はGPyとpyGPを使っても同様に試みましたが、Sklearnよりも文書化されていないので、私は2次元でもそれほど遠くに行っていませんでした。しかし、あなたがこれらのうちの1つがまだ私の問題のためのより良い選択肢かもしれないと思うなら、scikit-learnの代わりに、私に知らせてください - そして、なぜ!ありがとう。 – Julie

答えて

1

私はscikit-learnガウスプロセスを使ってもかなり新しいです。しかし、何らかの努力の結果、3-dガウスプロセス回帰をうまく実装することができました。 1-d回帰の例は数多くありますが、入力次元が大きければ何もありません。

おそらく、使用している値を表示できます。

入力を送信する形式によっては、問題が生じることがあります。などの入力Xをフォーマットしてみてください:

X = np.array([param1, param2]).T 

として出力形式:私は理解されるように、また

gp.fit(X, y.reshape(-1,1)) 

、実装= 0、平均関数Mを想定しています。回帰しようとしている出力が0と大きく異なる平均値を示している場合は、それを正規化する必要があります(これはおそらくあなたの問題を解決するでしょう)。パラメータ空間の標準化も同様に役立ちます。

関連する問題