2016-09-13 5 views
2

내 질문은 꽤 간단하지만 나는 caret 패키지 doc을 사용하여 확실한 답변을 찾을 수 없습니다. 함수에서 전처리 옵션 센터 및 비율을 사용하는 경우 예측을 수행하는 동안 동일한 사전 처리가 새 데이터 세트에 적용됩니다.사전 처리시 캐럿 패키지의 예측 기능은 향후 정보를 사용합니까?

예 : 예 : 훈련 세트의 평균과 스케일이 새 데이터에 적용된다는 의미입니까? 또는 새로운 센터링 및 스케일링이 새로운 데이터 세트에 적용되므로 데이터가 문제가되는 미래의 포인트를 잠재적으로 사용할 수 있습니까?

+0

'caret :: predict.preProcess()'에 대해 이야기하고 있습니까? 그렇다면 문서에서는 변환을 통해 교육 데이터의 추정치를 사용하여 테스트 데이터를 센터링/스케일링한다고 말합니다. – ddunn801

+0

모델을 교육하고 새 데이터 세트에서 사용하려고 할 때 predict.train에 대해 이야기하고 있습니다. – mlal

답변

1

caret::predict.train 당신이 테스트 세트에 예측하기 위해 내장 된 모델 매개 변수를 사용하여 감사드립니다.

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

당신은 object$preProcess에 액세스하여 모델을 만든 후 자신에 대한 이러한 매개 변수를 볼 수 있습니다 여기에

는 preProc 데이터 객체의 전처리 매개 변수에서 비롯 보여줍니다 소스 코드에서 조각입니다. 다음은 완전한 예입니다.

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 
+0

감사합니다! 따라서 앞으로 포인트를 사용할 필요가 없습니다. – mlal

+0

당신도이 가능성을 확인하는 것이 좋습니다. – ddunn801

관련 문제