插入符包中的预测函数在预处理时是否使用未来信息?
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
我的问题很简单,但我无法使用 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