2015-04-14 9 views
14

Próbuję zbudować model predykcyjny w karetce za pomocą PCA jako wstępnego przetwarzania. Wstępnego przetwarzania byłby następujący:R/caret: Przekaż argumenty preprocessingu pca do pociągu()

preProc <- preProcess(IL_train[,-1], method="pca", thresh = 0.8) 

Czy to możliwe, aby przejść bezpośrednio do argumentu threshtrain() funkcji daszek jest? Próbowałem następujących, ale nie działa:

modelFit_pp <- train(IL_train$diagnosis ~ . , preProcess="pca", 
          thresh= 0.8, method="glm", data=IL_train) 

Jeśli nie, w jaki sposób można przekazać oddzielne preProc wyniki do funkcji train()?

+2

To jest świetne pytanie. Dziękuję za pytanie. – ahoffer

Odpowiedz

21

Zgodnie z dokumentacją, należy określić dodatkowe argumenty przebiegu wyprzedzającego przy trainControl

?trainControl 

... 
preProcOptions 

A list of options to pass to preProcess. The type of pre-processing 
(e.g. center, scaling etc) is passed in via the preProc option in train. 
... 

Ponieważ zestaw danych nie jest powtarzalny, spójrzmy na przykład. Będę używał zestawu danych Sonar z mlbench i użyję algorytmu pls dla zabawy.

library(caret) 
library(mlbench) 

data(Sonar) 

ctrl <- trainControl(preProcOptions = list(thresh = 0.95)) 

mod <- train(Class ~ ., 
      data = Sonar, 
       method = "pls", 
       trControl = ctrl) 

Chociaż dokumentacja nie jest najbardziej ekscytującą lekturą, zdecydowanie upewnij się, że starasz się ją przejrzeć. Autorzy pakietów ciężko pracują nad stworzeniem dokumentacji i istnieje wiele cudów, które można znaleźć w niej.

+0

Właśnie tego szukałem. –

Powiązane problemy