簡體   English   中英

帶有噪聲的高斯過程模型:ValueError:塊必須是標量或長度為n_samples的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM