Параметр предварительной обработки PCA в функции поезда кареты - PullRequest
1 голос
/ 16 апреля 2019

Я выполняю knn регрессию на моих данных и хотел бы:

a) провести перекрестную проверку через repeatedcv, чтобы найти оптимальное k;

b) при построении модели knn, используя PCA при пороге уровня 90% для уменьшения размерности.

library(caret)
library(dplyr)
set.seed(0)
data = cbind(rnorm(20, 100, 10), matrix(rnorm(400, 10, 5), ncol = 20)) %>% 
  data.frame()
colnames(data) = c('True', paste0('Day',1:20))
tr = data[1:15, ] #training set
tt = data[16:20,] #test set

train.control = trainControl(method = "repeatedcv", number = 5, repeats=3)
k = train(True ~ .,
          method     = "knn",
          tuneGrid   = expand.grid(k = 1:10), 
          #trying to find the optimal k from 1:10
          trControl  = train.control, 
          preProcess = c('scale','pca'),
          metric     = "RMSE",
          data       = tr)

Мои вопросы:

(1) Я заметил, что кто-то предложил изменить параметр pca в trainControl:

ctrl <- trainControl(preProcOptions = list(thresh = 0.8))
mod <- train(Class ~ ., data = Sonar, method = "pls",
              trControl = ctrl)

ЕслиЯ изменяю параметр в trainControl, означает ли это, что PCA все еще проводится во время KNN? Подобная проблема, как этот вопрос

(2) Я нашел еще один пример , который соответствует моей ситуации - я надеюсь изменить порог на 90%, но я незнаете, где я могу изменить его в функции Caret train, особенно мне все еще нужна опция scale.

Прошу прощения за утомительное длинное описание и случайные ссылки.Заранее спасибо!

(Спасибо, Камилла, за предложения по созданию кода!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...