![](/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.