необходимо центрировать и масштабировать данные перед прогнозированием?

В функции train пакета Caret можно выполнять центрирование и масштабирование предикторов, как в следующем примере:

knnFit <- train(Direction ~ ., data = training, method = "knn",
                preProcess = c("center","scale"))

Установка этого преобразования в поезде должна дать лучшую оценку производительности алгоритма во время передискретизации.

В этом случае, когда я использую модель для прогнозирования реакции на новые данные, должен ли я заботиться о центрировании и масштабировании или эта операция включена в окончательную модель?

Достаточно ли следующей операции?

pred <- predict(knnFit, newdata = test)

Спасибо!


person amarchin    schedule 07.01.2016    source источник
comment
Нет, предварительно вы должны центрировать и масштабировать. stackoverflow.com/questions/15468866/ и stackoverflow.com/questions/15215457/   -  person PereG    schedule 07.01.2016


Ответы (1)


preProces, указанные в объекте train, будут применяться к новым данным без предварительной обработки новых данных. Так что вашей операции достаточно.

Также взгляните на выдержку с веб-сайта Caret ниже. Также есть целый раздел, посвященный исключительно препроцессингу. Определенно стоит потраченного времени на ее прочтение.

Вы можете найти веб-сайт здесь.

Эти этапы обработки будут применяться во время любых прогнозов, сгенерированных с помощью Predict.train, ExtractPrediction или ExtractProbs (подробности см. далее в этом документе). Предварительная обработка не будет применяться к прогнозам, которые напрямую используют объект object$finalModel.

person phiver    schedule 07.01.2016