PCA для KNN: параметр предварительной обработки в карете - PullRequest
0 голосов
/ 23 апреля 2019

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

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

b) при сборке* Модель 1007 *, использующая PCA при пороговом уровне 90% для уменьшения размерности.

library(caret)
library(dplyr)
set.seed(0)
data = cbind(rnorm(15, 100, 10), matrix(rnorm(300, 10, 5), ncol = 20)) %>% 
  data.frame()

colnames(data) = c('True', paste0('Day',1:20))
tr = data[1:10, ] #training set
tt = data[11:15,] #test set

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

Мой вопрос: в настоящее время пороговое значение PCA по умолчанию составляет 95% (не уверен), как я могу его изменитьдо 80%?

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете попытаться добавить аргумент preProcOptions в trainControl

train.control = trainControl(method = "repeatedcv", number = 5, repeats=3, preProcOptions = list(thresh = 0.80))
...