Nombre de composants principaux lors du prétraitement à l'aide de PCA dans le package caret dans R

11

J'utilise le caretpackage Rpour la formation des classificateurs SVM binaires. Pour réduire les fonctionnalités, je prétraitement avec PCA en utilisant la fonction intégrée preProc=c("pca")lors de l'appel train(). Voici mes questions:

  1. Comment le curseur sélectionne-t-il les principaux composants?
  2. Existe-t-il un nombre fixe de composants principaux sélectionnés?
  3. Les principales composantes sont-elles sélectionnées selon une certaine variance expliquée (par exemple 80%)?
  4. Comment puis-je définir le nombre de composants principaux utilisés pour la classification?
  5. (Je comprends que l'ACP devrait faire partie de la validation croisée externe pour permettre des estimations de prédiction fiables.) L'ACP devrait-elle également être mise en œuvre dans le cycle de validation croisée interne (estimation des paramètres)?
  6. Comment Caret met-il en œuvre l'ACP dans la validation croisée?
jokel
la source
Des informations utiles peuvent être trouvés dans ce post sur PCA et k fois la validation croisée dans le paquet caret dans R .
Ekaba Bisong

Réponses:

13

Par défaut, caret conserve les composants qui expliquent 95% de la variance.
Mais vous pouvez le changer en utilisant le threshparamètre.

# Example
preProcess(training, method = "pca", thresh = 0.8)

Vous pouvez également définir un nombre particulier de composants en définissant le pcaCompparamètre.

# Example
preProcess(training, method = "pca", pcaComp = 7)

Si vous utilisez les deux paramètres, pcaCompa priorité sur thresh.

Veuillez consulter: https://www.rdocumentation.org/packages/caret/versions/6.0-77/topics/preProcess

Jacques Wainer
la source
Malheureusement, le lien est rompu
R Kiselev
corrigé le lien
Jacques Wainer