Ich verwende das caret
Paket in R
für das Training von binären SVM-Klassifikatoren. Zur Reduzierung von Funktionen verarbeite ich mit PCA die integrierte Funktion, preProc=c("pca")
wenn ich anrufe train()
. Hier sind meine Fragen:
- Wie wählt Caret Hauptkomponenten aus?
- Gibt es eine feste Anzahl von Hauptkomponenten, die ausgewählt werden?
- Werden Hauptkomponenten durch einen gewissen Grad an erklärter Varianz ausgewählt (z. B. 80%)?
- Wie kann ich die Anzahl der für die Klassifizierung verwendeten Hauptkomponenten festlegen?
- (Ich verstehe, dass PCA Teil der äußeren Kreuzvalidierung sein sollte, um zuverlässige Vorhersageschätzungen zu ermöglichen.) Sollte PCA auch im inneren Kreuzvalidierungszyklus implementiert werden (Parameterschätzung)?
- Wie implementiert Caret PCA in der Kreuzvalidierung?
Antworten:
Standardmäßig behält Caret die Komponenten bei, die 95% der Varianz erklären.
Sie können es jedoch mithilfe des
thresh
Parameters ändern .Sie können auch eine bestimmte Anzahl von Komponenten festlegen, indem Sie den
pcaComp
Parameter einstellen .Wenn Sie beide Parameter verwenden,
pcaComp
hat Vorrang vorthresh
.Weitere Informationen finden Sie unter: https://www.rdocumentation.org/packages/caret/versions/6.0-77/topics/preProcess
quelle