2

我正在使用 Gaussian Process Regressor scikit learn 来预测模型的数据。在使用 gp 时,我还需要找出数据集中存在的每个值的不确定性。文档建议使用“gp.predict(self, X, eval_MSE=True)”。我在可在线测试的代码中使用了相同的“eval_MSE”,但它给了我这个错误。

TypeError: predict() got an unexpected keyword argument 'eval_MSE'

我用于测试的代码:

gp = GaussianProcessRegressor(corr='squared_exponential', theta0=1e-1,
                     thetaL=1e-3, thetaU=1,
                     nugget=(dy / y) ** 2,
                     random_start=100)

gp.fit(X, y)

y_pred, MSE = gp.predict(x, eval_MSE=True)

sigma = np.sqrt(MSE)

任何人都可以为此提供解决方案吗?

4

1 回答 1

1

要么回到以前的 scikitlearn 版本:GaussianProcess.predict ... 要么适应最新版本:GaussianProcessClassifier.predict

不仅predict参数发生了变化,分类器本身的名称、输入参数等也发生了变化。

以前链接的摘要:

  • 旧的 GaussianProcess(0.17 版):

    class sklearn.gaussian_process.GaussianProcess(regr='constant', corr='squared_exponential', beta0=None, storage_mode='full', verbose=False, theta0=0.1, thetaL=None, thetaU=None, optimizer='fmin_cobyla' , random_start=1, normalize=True, nugget=2.2204460492503131e-15, random_state=None)

    预测(X,eval_MSE=False,batch_size=None)

  • 新的 GaussianProcessClassifier:

    sklearn.gaussian_process.GaussianProcessClassifier 类(内核=None,*,优化器='fmin_l_bfgs_b',n_restarts_optimizer=0,max_iter_predict=100,warm_start=False,copy_X_train=True,random_state=None,multi_class='one_vs_rest',n_jobs=None)

    预测(X)

于 2020-10-20T08:09:30.953 回答