0

我正在生成一个random.uniform(low=0.0, high=100.0, size=(150,150))数组。
我将其输入到生成 、 和 的X函数xy

但是,如果随机测试矩阵大于 100,则会出现以下错误。
我尝试过使用 theta 值。

有人遇到过这个问题吗?这是一个错误吗?
我正在使用python2.6scikit-learn-0.10。我应该尝试python3吗?

欢迎任何建议或意见。

谢谢你。

gp.fit( XKrn, yKrn )
  File "/usr/lib/python2.6/scikit_learn-0.10_git-py2.6-linux-x86_64.egg/sklearn/gaussian_process/gaussian_process.py", line 258, in fit
    raise ValueError("X and y must have the same number of rows.")
ValueError: X and y must have the same number of rows.
4

2 回答 2

3

ValueError: X and y must have the same number of rows.意味着在您的情况下XKrn.shape[0]应该等于yKrn.shape[0]. 您可能在生成数据集的代码中有错误。

这是一个工作示例:

In [1]: from sklearn.gaussian_process import GaussianProcess

In [2]: import numpy as np

In [3]: X, y = np.random.randn(150, 10), np.random.randn(150)

In [4]: GaussianProcess().fit(X, y)
Out[4]: 
GaussianProcess(beta0=None,
        corr=<function squared_exponential at 0x10d42aaa0>, normalize=True,
        nugget=array(2.220446049250313e-15), optimizer='fmin_cobyla',
        random_start=1,
        random_state=<mtrand.RandomState object at 0x10b4c8360>,
        regr=<function constant at 0x10d42a488>, storage_mode='full',
        theta0=array([[ 0.1]]), thetaL=None, thetaU=None, verbose=False)

目前还不支持 Python 3,scikit-learn 的最新发布版本是 0.12.1。

于 2012-11-13T23:16:12.377 回答
0

我原来的帖子被删了。谢谢,柔印。

我有同样的问题,我传入的行数在我的 X 和 y 中是相同的。

就我而言,问题实际上是我传递了许多功能以适应我的输出。高斯过程适合单个输出特征。

“行数”错误具有误导性,原因是我没有正确使用该包。要适应这样的多个输出功能,您需要为每个功能配备一个 GP。

于 2013-04-24T20:10:05.810 回答