Göndermeden önce çok fazla arama yaptım ve this question buldum, bu da benim sorunum olabilir. Bununla birlikte, cevabın içinde neyin önerildiğini denedim ama ne yazık ki bu durum düzeltilemedi ve ben de yeni bir üye olduğum için daha fazla açıklama istemek için yorum ekleyemedim.2D-girişler, 1D çıkışlı regresyon için scikit-Learn'in Gauss Süreci nasıl doğru kullanılır?
Her neyse, Gauss Sürecini Python'da scikit-öğrenmesi ile başlamak için basit ama gerçek bir durumda kullanmak istiyorum (scikit-learn belgelerinde sağlanan örnekleri kullanarak). X adı verilen bir 2B giriş kümesine (2 parametreden 8 çift) sahibim. 1D-dizi y'da toplanan 8 karşılık gelen çıkışım var. Daha sonra
# Input space
x1 = np.linspace(x1min, x1max)
x2 = np.linspace(x2min, x2max)
x = (np.array([x1, x2])).T
I GP modeli örneğini, benim eğitim veri (x, y) için uygun ve 1D tahmini yapmak:
# 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])
Bir giriş test alanına x tanımlandığı
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 benim giriş alanı 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()
Bu benim elde budur:
Sonra bir 3B grafiğini yapmak RBF[5,5]
Ben ne afiş I benzer böyle bir şey olsun çekirdek parametrelerini değiştirmek
Bu araziler bile uyuşmuyor: got yukarıda belirtilen Orijinal antrenman noktalarından gözlemler ([65.1,37] için düşük yanıt ve [92.3,54] için en yüksek cevap).
2D'deki GP'ler için oldukça yeni (ayrıca Python'u uzun zaman önce başlatmamıştım) bu yüzden burada bir şey kaçırdığımı düşünüyorum ... Herhangi bir cevap yararlı ve büyük bir memnuniyetle karşılandı, teşekkürler!
GPy ve pyGP'leri kullanarak da denedim, ancak sklearn'den biraz daha az belgelendiklerinden, 2B'de de çok uzağa gitmedim. Ama bunlardan birinin hala benim problemim için daha iyi bir seçenek olabileceğini düşünüyorsanız, scikit-öğrenmek yerine, lütfen bana-ve neden! Teşekkürler. – Julie