Para medir o erro de generalização, é necessário fazer o último: um PCA separado para cada conjunto de treinamento (o que significaria fazer um PCA separado para cada classificador e para cada dobra CV).
Você aplica a mesma transformação ao conjunto de testes: ou seja, você não faz um PCA separado no conjunto de testes! Você subtrai a média (e, se necessário, divide pelo desvio padrão) do conjunto de treinamento, conforme explicado aqui: Centralize zero o conjunto de testes após o PCA no conjunto de treinamento . Em seguida, você projeta os dados nos PCs do conjunto de treinamento.
Você precisará definir um critério automático para o número de PCs a serem usados.
Como é apenas uma primeira etapa de redução de dados antes da classificação "real", o uso de alguns PCs em excesso provavelmente não afetará o desempenho. Se você tem uma expectativa de quantos PCs seriam bons com a experiência, talvez você possa usá-lo.
Você também pode testar posteriormente se foi necessário refazer o PCA para cada modelo substituto (repetindo a análise com apenas um modelo PCA). Eu acho que vale a pena relatar o resultado desse teste.
Certa vez, medi o viés de não repetir o PCA e constatei que, com meus dados de classificação espectroscópica, detectava apenas metade da taxa de erro de generalização ao não refazer o PCA para todos os modelos substitutos.
Dito isto, é possível construir um modelo PCA adicional de todo o conjunto de dados para fins descritivos (por exemplo, visualização). Apenas certifique-se de manter as duas abordagens separadas uma da outra.
Ainda estou achando difícil entender como um PCA inicial em todo o conjunto de dados influenciaria os resultados sem ver os rótulos das classes.
Mas ele vê os dados. E se a variação entre classes for grande em comparação com a variação dentro da classe, a variação entre classes influenciará a projeção do PCA. Geralmente, a etapa do PCA é concluída porque você precisa estabilizar a classificação. Ou seja, em uma situação em casos adicionais fazer influenciar o modelo.
Se a variação entre as classes for pequena, esse viés não será grande, mas nesse caso o PCA também não ajudaria na classificação: a projeção do PCA não ajudaria a enfatizar a separação entre as classes.
caret
pacote: Validação cruzada do PCA e k-fold no Caret .