如何重新调整 scikit-learn 高斯过程回归中的归一化标准差?

问题描述 投票:0回答:2

我正在使用 scikit-learn 进行高斯过程回归建模。我的数据没有标准化。该模型总是返回 0 到 1 之间的标准差值,这与我的数据不符。如何重新调整标准差值以获得实际标准差?

scikit-learn regression normalization standard-deviation gaussian-process
2个回答
1
投票

我使用的一种方法是在 scikit-learn 中使用标准缩放器。在训练模型之前对数据集进行标准化是很自然的事情。

流程如下:

  • 将缩放器与您的训练数据相匹配(将缩放器表示为 SC)
  • 转换您的数据集(使用 SC 进行训练和测试集)
  • 使用标准化训练集训练你的 GPR 模型
  • 使用 GPR 模型预测归一化测试集并获得输出
  • 使用 SC 对均值和标准输出进行逆变换

这是指向 std_scaler 的链接


-1
投票

好吧,Doo-Hyun Andrew Cho 的程序上述并不完全有效。考虑对于高斯过程,某些新数据点

X'
的预测分布是正态分布的。假设训练数据中的目标
u
具有平均值
s
和标准差
Y
,我们在训练前将其用于标准化。然后我们可以对均值和方差进行逆变换为

  1. E[Y'*s + u] = E[Y']*s + u

  2. Var[Y'*s + u] = Var[Y'*s] = s^2*Y

所以新的预测分布是

Normal(E[Y']*s + u, s^2*Y')

如果需要具体实现,可以查看 GPy 的 normalizer

© www.soinside.com 2019 - 2024. All rights reserved.