Non ho visto la lezione, quindi non posso commentare ciò che è stato detto.
I miei $ 0,02: se vuoi ottenere buone stime delle prestazioni usando il ricampionamento, dovresti davvero fare tutte le operazioni durante il ricampionamento invece che prima. Questo è vero per la selezione delle funzionalità [1] e per operazioni non banali come PCA. Se aggiunge incertezza ai risultati, includilo nel ricampionamento.
Pensa alla regressione dei componenti principali: PCA seguita da regressione lineare su alcuni dei componenti. Anche i parametri di stima PCA (con rumore) e il numero di componenti devono essere scelti (valori diversi comporteranno risultati diversi => più rumore).
Supponiamo che abbiamo usato un CV di 10 volte con lo schema 1:
conduct PCA
pick the number of components
for each fold:
split data
fit linear regression on the 90% used for training
predict the 10% held out
end:
o schema 2:
for each fold:
split data
conduct PCA on the 90% used for training
pick the number of components
fit linear regression
predict the 10% held out
end:
Dovrebbe essere chiaro che il secondo approccio dovrebbe produrre stime di errore che riflettano l'incertezza causata dalla PCA, la selezione del numero di componenti e la regressione lineare. In effetti, il CV nel primo schema non ha idea di cosa lo abbia preceduto.
Sono colpevole di non fare sempre tutte le operazioni con ricampionamento, ma solo quando non mi interessa davvero le stime delle prestazioni (il che è insolito).
C'è molta differenza tra i due schemi? Dipende dai dati e dalla pre-elaborazione. Se stai solo centrando e ridimensionando, probabilmente no. Se hai un sacco di dati, probabilmente no. Man mano che le dimensioni del set di allenamento diminuiscono, aumenta il rischio di ottenere stime scarse, specialmente se n è vicino a p.
Posso affermare con certezza per esperienza che non includere la selezione di funzioni supervisionate nel ricampionamento è una pessima idea (senza set di formazione di grandi dimensioni). Non vedo perché la pre-elaborazione sia immune a questo (in una certa misura).
@mchangun: penso che il numero di componenti sia un parametro di ottimizzazione e probabilmente vorrai selezionarlo utilizzando stime delle prestazioni che sono generalizzabili. Potresti scegliere automaticamente K in modo tale che almeno l'X% della varianza sia spiegato e includa quel processo all'interno del ricampionamento in modo da tenere conto del rumore in quel processo.
Max
[1] Ambroise, C., & McLachlan, G. (2002). Distorsione di selezione nell'estrazione genica sulla base di dati di espressione genica microarray. Atti della National Academy of Sciences, 99 (10), 6562-6566.