Número de componentes principais ao pré-processar usando PCA no pacote de interpolação em R

11

Estou usando o caretpacote no Rtreinamento de classificadores binários SVM. Para redução de recursos, estou pré-processando com o PCA usando o recurso incorporado preProc=c("pca")ao chamar train(). Aqui estão as minhas perguntas:

  1. Como o sinal de intercalação seleciona os principais componentes?
  2. Existe um número fixo de componentes principais que está selecionado?
  3. Os principais componentes são selecionados por alguma variação explicada (por exemplo, 80%)?
  4. Como posso definir o número de componentes principais usados ​​para classificação?
  5. (Entendo que o PCA deve fazer parte da validação cruzada externa para permitir estimativas confiáveis ​​de previsão.) O PCA também deve ser implementado no ciclo de validação cruzada interna (estimativa de parâmetros)?
  6. Como o sinal de intercalação implementa o PCA na validação cruzada?
brincadeira
fonte
Informações úteis podem ser encontrados neste pós em APC e k vezes de validação cruzada no pacote de acento circunflexo em R .
Ekaba Bisong

Respostas:

13

Por padrão, o sinal de intercalação mantém os componentes que explicam 95% da variação.
Mas você pode alterá-lo usando o threshparâmetro

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

Você também pode definir um número específico de componentes definindo o pcaCompparâmetro

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

Se você usar os dois parâmetros, terá pcaCompprecedência thresh.

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

Jacques Wainer
fonte
Infelizmente, a ligação é interrompida
R Kiselev
corrigido o link
Jacques Wainer