预处理时预测插入包中的功能是否使用了未来的信息?

时间:2016-09-13 14:12:55

标签: r prediction r-caret forecasting training-data

我的问题非常简单,但我无法使用插入包文档找到明确的答案。 如果我在 train 函数中使用预处理选项中心和缩放,则表示在进行预测时将对新数据集应用相同的预处理。

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

以下是源代码中的一个片段,显示preProc数据来自对象的preProcess参数:

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