我的问题非常简单,但我无法使用插入包文档找到明确的答案。 如果我在 train 函数中使用预处理选项中心和缩放,则表示在进行预测时将对新数据集应用相同的预处理。
所以当我使用预测功能时: 这是否意味着训练集的均值和规模适用于新数据?或者新的居中和缩放应用于新数据集,因此如果数据是时间序列(这是有问题的),将来可能使用点?
谢谢
答案 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