Número de componentes principales al preprocesar usando PCA en el paquete caret en R

11

Estoy usando el caretpaquete Rpara entrenar clasificadores binarios SVM. Para la reducción de funciones, estoy preprocesando con PCA usando la función incorporada preProc=c("pca")cuando llamo train(). Aquí están mis preguntas:

  1. ¿Cómo selecciona caret los componentes principales?
  2. ¿Hay un número fijo de componentes principales que se selecciona?
  3. ¿Los componentes principales se seleccionan por alguna cantidad de varianza explicada (por ejemplo, 80%)?
  4. ¿Cómo puedo establecer el número de componentes principales utilizados para la clasificación?
  5. (Entiendo que PCA debería ser parte de la validación cruzada externa para permitir estimaciones de predicción confiables). ¿La PCA también debería implementarse en el ciclo interno de validación cruzada (estimación de parámetros)?
  6. ¿Cómo implementa caret PCA en la validación cruzada?
jokel
fuente
Información útil se puede encontrar en este mensaje el PCA y k-veces la validación cruzada en el paquete de intercalación en R .
Ekaba Bisong

Respuestas:

13

Por defecto, caret mantiene los componentes que explican el 95% de la varianza.
Pero puede cambiarlo utilizando el threshparámetro

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

También puede establecer un número particular de componentes configurando el pcaCompparámetro.

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

Si usa ambos parámetros, pcaComptiene prioridad sobre thresh.

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

Jacques Wainer
fuente
Desafortunadamente, el enlace está roto
R Kiselev
corrigió el enlace
Jacques Wainer