2016-03-31 9 views
0

Verwenden von train() und preProcess() Ich möchte ein Vorhersagemodell mit PCA erstellen, wobei die ersten 7 Hauptkomponenten meine Prädiktoren sind.R - Wie wird eine bestimmte Anzahl von PCA-Komponenten zum Trainieren eines Vorhersagemodells festgelegt?

Die unten funktioniert, aber ich bin nicht in der Lage, die Anzahl der PCs angeben:

predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca") 

ich das versucht habe, die Anzahl der PCs angeben, aber ich weiß nicht, wie es in Zug zu integrieren():

training_pre<-preProcess(training[,ILcols],method = c("center", "scale", "pca"),pcaComp= 7) 

ich habe versucht mit:

predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca", pcaComp=7) 
Error in train.default(x, y, weights = w, ...) : Stopping 

UPDATE: Es se ems ich dies umgehen, indem vorhersagen, mit() zuerst:

training2_pca<-predict(training_pre,training2_pca) 
train(diagnosis~., data=training2_pca, method = "glm") 

Antwort

1

Alle Vorverarbeitung getan werden soll, innerhalb der Ausbildung Falten oder, in diesem Fall Resampling. Dies verhindert "Datenlecks", so dass der erste der obigen Ansätze bevorzugt sein sollte, siehe z.B. this question.

Das pcaComp Argument geht in trainControl(). Unter Verwendung der Irisdaten, KNN und der ersten zwei Hauptkomponenten als ein Beispiel:

predModel2 <- train(Species~., data=iris, method = "knn", preProcess = "pca", 
        trControl = trainControl(preProcOptions = list(pcaComp = 2))) 
Verwandte Themen