插入符包中的预测函数在预处理时是否使用未来信息?

Does predict function in caret package use future information when preprocessing?

我的问题很简单,但我无法使用 caret 包 doc 找到明确的答案。 如果我在我的 train 函数中使用预处理选项 center 和 scale,据说在进行预测时相同的预处理将应用于新数据集。

所以当我使用 predict 函数时: 这是否意味着训练集的均值和规模应用于新数据?或者对新数据集应用新的居中和缩放,因此如果数据是时间序列(这是有问题的),将来可能会使用点?

谢谢

caret::predict.train 使用您构建的模型中的参数对测试集进行预测。

这是源代码中的一个片段,显示了来自对象的预处理参数的预处理数据:

out <- predictionFunction(method = object$modelInfo, 
            modelFit = object$finalModel, newdata = newdata, 
            preProc = object$preProcess)

您可以在创建模型后通过访问 object$preProcess 亲自查看这些参数。 这是一个完整的例子:

rm(list=ls())
library(caret)
set.seed(4444)

data(mtcars)
inTrain <- createDataPartition(y=mtcars$mpg,p=0.75,list=FALSE)
training <- mtcars[inTrain,]
testing <- mtcars[-inTrain,]

lmFit <- train(mpg~.,data=training,method="lm",preProc=c("center","scale"))
lmFit$preProcess