高斯过程回归器 scikit learn 无法识别“eval_MSE=True”

Posted

技术标签:

【中文标题】高斯过程回归器 scikit learn 无法识别“eval_MSE=True”【英文标题】:Gaussian Process Regressor scikit learn does not recognise 'eval_MSE=True' 【发布时间】:2020-10-16 11:27:07 【问题描述】:

我正在使用 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)

谁能为此提供解决方案?

【问题讨论】:

嗨@jimi,很好的问题,我也有同样的问题,除了降级,你能找到解决方案吗? 【参考方案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:

class sklearn.gaussian_process.GaussianProcessClassifier(kernel=None, *, optimizer='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=无)

预测(X)

【讨论】:

如果有人更熟悉这些变量会很好,请从 0.17 到最新版本进行 输入变量表匹配。例如,从现在开始如何设置eval_MSE Garcia 你好,谢谢你的回答,我也有同样的问题,你知道在当前版本中如何处理eval_MSE吗?

以上是关于高斯过程回归器 scikit learn 无法识别“eval_MSE=True”的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 中的多输出高斯过程回归

如何为 scikit-learn 的高斯过程回归指定先验?

使用scikit-learn的高斯过程回归时如何使用点的经纬度?

高斯过程 scikit-learn - 异常

如何使用 scikit-learn 进行高斯/多项式回归?

scikit learn 中的高斯处理回归,无需内核梯度评估