我正在使用带噪声的高斯过程构建分类模型 - 我不明白为什么失败时会出现值错误
我有一个大约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)
nugget的类型是numpy.ndarray和shape(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:nugget必须是标量或长度为n_samples的数组
似乎X,y,nugget都是numpy.ndarray类型和正确的形状。我认为nugget的长度为n_samples(54),所以它应该具有相同的长度。
有什么明显的东西让我失踪吗?
答案 0 :(得分:0)
您的y
必须是形状(n,)
的矢量,而不是形状(n,1)
的数组。您可以使用
y = y.reshape((len(y),)