2016-09-13 4 views
2

私の質問はかなりシンプルですが、私はキャレットパッケージのドキュメントを使用して明確な答えを見つけることができません。 機能で前処理オプションのセンタとスケールを使用すると、予測中に新しいプリセットが新しいデータセットに適用されることが記載されています。キャレットパッケージの予測関数は、前処理時に将来の情報を使用しますか?

したがって、予測の機能を使用する場合: トレーニングセットの平均とスケールが新しいデータに適用されることを意味しますか?または、新しいデータセットに新しいセンタリングとスケーリングが適用されるため、データがタイムシリーズ(問題がある)の場合、将来のポイントを使用する可能性がありますか?

+0

あなたは 'キャレット:: predict.preProcess()'について話していますか?もしそうであれば、文書は、変換が訓練データからの推定値を使用してテストデータをセンタリング/スケーリングすると述べている。 – ddunn801

+0

モデルを訓練し、新しいデータセットで使用したいときは、predict.trainについて話しています。 – mlal

答えて

1

caret::predict.trainはあなたがテストセットに予測するために、構築されたモデルからのパラメータを使用していただきありがとうございます。ここで

はpreProcデータを示して、ソースコードからの抜粋であるオブジェクトの前処理パラメータから来ている:

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

ありがとう!だから、将来のポイントの使用はありません:) – mlal

+0

あなたはこの可能性をチェックすることを考えてもいいですね。 – ddunn801

関連する問題