![](/img/trans.png)
[英]Implementation of Gaussian Process Regression in Python y(n_samples, n_targets)
[英]Gaussian Process Model with Noise: ValueError: nugget must be either a scalar or array of length n_samples
我正在使用帶有噪聲的高斯過程建立分類模型-我不明白為什么它會因值錯誤而失敗
我有一個約10%的數據集被標記為1或0的目標。我試圖預測其他90%的概率為1。
我已經使用sklearn將標記集分為訓練集和測試集。
X是feature_training,它是一個np.array X.shape(54,9)
y是feature_target並且它是一個np.array y.shape(54,1)
兩者都是浮動的,噪聲的計算公式為:
dy = 0.5 + 1.0 * np.random.random(y.shape)
noise = np.random.normal(0, dy)
y = (y + noise)
y.shape
(54,1)
塊的類型為numpy.ndarray和形狀(54,1)
在高斯過程模型中,我正在使用-
gp = GaussianProcess(corr='squared_exponential', theta0=1e-1,
thetaL=1e-3, thetaU=1,
nugget=(dy / y) ** 2,
random_start=100)
gp.fit(X, y)
失敗,因為:ValueError:塊必須為標量或長度為n_samples的數組
看起來X,y,nugget都是numpy.ndarray類型,並且形狀正確。 我認為礦塊的長度為n_samples(54),因此其長度應相等。
有什么明顯的我想念的東西嗎?
您的y
必須是形狀(n,)
的向量(n,)
而不是形狀(n,1)
的數組。 您可以使用以下方法解決此問題
y = y.reshape((len(y),)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.