2016-09-13 14 views
2

Мой вопрос довольно прост, но я не могу найти четкий ответ, используя пакетный пакет doc. Если я использую центр опций предварительной обработки и масштаб в моей функции train, указано, что при выполнении прогнозов будет применяться тот же препроцессор к новому набору данных.Предоставляет ли функция прогнозирования в каретном пакете будущую информацию при предварительной обработке?

Так что, когда я использую , предскажите Функция: Означает ли это, что среднее значение и масштаб набора тренировок применяются к новым данным? Или новый набор и масштабирование применяется к новому набору данных, таким образом, потенциально используя точки в будущем, если данные являются периодами времени (что является проблематичным)?

Спасибо

+0

Вы говорите о 'caret :: pred.preProcess()'? Если это так, в документации говорится, что преобразование использует оценки из данных обучения в центр/масштаб тестовых данных. – ddunn801

+0

Я говорю о predent.train, когда вы обучили модель и хотите использовать ее в новом наборе данных. – mlal

ответ

1

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

Спасибо! Так что не используйте точки в будущем :) – mlal

+0

Хорошо, что вы даже решили проверить эту возможность. – ddunn801

 Смежные вопросы

  • Нет связанных вопросов^_^