我正在使用 scikit-learn 进行高斯过程回归建模。我的数据没有标准化。该模型总是返回 0 到 1 之间的标准差值,这与我的数据不符。如何重新调整标准差值以获得实际标准差?
我使用的一种方法是在 scikit-learn 中使用标准缩放器。在训练模型之前对数据集进行标准化是很自然的事情。
流程如下:
这是指向 std_scaler 的链接
好吧,Doo-Hyun Andrew Cho 的程序上述并不完全有效。考虑对于高斯过程,某些新数据点
X'
的预测分布是正态分布的。假设训练数据中的目标 u
具有平均值 s
和标准差 Y
,我们在训练前将其用于标准化。然后我们可以对均值和方差进行逆变换为
E[Y'*s + u] = E[Y']*s + u
Var[Y'*s + u] = Var[Y'*s] = s^2*Y
所以新的预测分布是
Normal(E[Y']*s + u, s^2*Y')
。
如果需要具体实现,可以查看 GPy 的 normalizer。