当模型与缩放数据拟合时,如何缩放新的观测值以进行预测?


13

我了解缩放数据矩阵以用于线性回归模型的概念。例如,在R中,您可以使用:

scaled.data <- scale(data, scale=TRUE)

我唯一的问题是,对于要为其预测输出值的新观测值,它们如何正确缩放?会scaled.new <- (new - mean(data)) / std(data)吗?


1
要获取值就可以了y = y_esc * sd(y) + mean(y),但是那会与我猜想的模型属性混淆,所以我也在等待一个更技术性的答案!
费尔南多2014年

我不想返回值,我想知道如何以相同的方式正确缩放新实例。我已根据您的评论编辑了我的问题。
SamuelNLP 2014年

Answers:


13

您问题的简短答案是,是的-scaled.new的表达式正确(除了您想要的sd不是std)。

可能值得注意的是scale具有可选参数,您可以使用:

scaled.new <- scale(new, center = mean(data), scale = sd(data))

同样,由scale(scaled.data)返回的对象具有保存使用的数字居中和缩放比例(如果有)的属性,您可以使用:

scaled.new <- scale(new, attr(scaled.data, "scaled:center"), attr(scaled.data, "scaled:scale"))

当原始数据有多于一列时,就会出现这种优势,因此要考虑多种均值和/或标准差。


我希望有一个更简单的方法来执行此操作,例如scaled.new <- scale(new, use.attrs = scaled.data)

@wordsforthewise可以很容易地为scale.default写一个包装器来实现这一目标。我怀疑R-core是否会赋予它较高的优先级。
user20637 '19

是的 如果我能弄清楚如何为R-core做出贡献并抽出时间来做,我可能会这样做。
wordforthewise
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.