【发布时间】:2022-01-19 13:49:53
【问题描述】:
在standard scikit-learn implementation of Gaussian-Process Regression (GPR) 中,(内核的)超参数是根据训练集选择的。
是否有一个易于使用的 GPR 实现(在 python 中),其中(内核的)超参数是根据单独的验证集选择的?或者交叉验证也是寻找合适的超参数的一个不错的选择(经过优化以在多个 train-val 分割上表现良好)。 (我更喜欢基于 scikit-learn GPR 的解决方案。)
详细说明:应该找到一组超参数 theta,在以下指标中表现良好: 根据训练数据计算后验 GP(给定具有超参数 theta 的先验 GP)。然后评估验证数据相对于后验的负对数似然。 对于 theta,这种负对数可能性应该是最小的。
换句话说,我想找到这样的“P[valData | trainData, theta]”是最大的。更准确地说,我想找到 theta 使得 sum_i log(P[ valData_i | trainData, theta ] 是最大的,其中 P[ valData_i | trainData, theta ] 是给定训练的验证数据点 valData_i 的高斯边际后验密度-给定具有超参数 theta 的先前 GP 的数据集。
【问题讨论】:
标签: python scikit-learn cross-validation non-linear-regression gaussian-process