2012-04-16 10 views
13

Sto usando KNN per classificare cifre scritte a mano. Ora ho anche implementato PCA per ridurre la dimensionalità. Dal 256 sono andato a 200. Ma mi accorgo solo del ~ 0,10% di perdita di informazioni. Ho cancellato 56 dimensioni. La perdita non dovrebbe essere più grande? Solo quando scendo a 5 dimensioni ottengo una perdita del ~ 20%. È normale?Algoritmo PCA e KNN

+0

Questo tipo di cose è comune in molti tipi di applicazioni. Si chiama il punto di rendimenti decrescenti. –

risposta

6

Stai dicendo che dopo aver rimosso 56 dimensioni, hai perso quasi nessuna informazione? Certo, questo è il punto di PCA! Principal Component Analysis, come afferma il nome, ti aiuta a determinare quali dimensioni portano le informazioni. Ed è possibile rimuovere il resto, che ne costituisce la parte più grande.

Voglio alcuni esempi, nell'analisi genica, ho letto documenti in cui la dimensione è ridotta da 40.000 a 100 con PCA, poi fanno cose magiche e hanno un eccellente classificatore con 19 dimensioni. Questo implicitamente ti dice che non hanno praticamente perso alcuna informazione quando hanno rimosso 39.900 dimensioni!

+2

ok grazie. Sono un po 'nuovo per l'apprendimento automatico –

0

Questo è normale, sì (e come Fezvez ha detto il punto di quello che hai fatto). Il tuo caso è in realtà un buon esempio in cui puoi vedere come è possibile.

Dai un'occhiata ai tuoi dati (che è sempre importante in machine learning, conosci i tuoi dati). Se hai immagini di caratteri scritti a mano in bianco su bianco, c'è un'alta probabilità che i pixel in alcuni angoli siano bianchi per tutti i campioni (l'ho avuto in un angolo quando ho fatto l'apprendimento automatico a mano di cifre scritte). Quindi non c'è in realtà nessuna informazione in quel pixel qualunque. Se lo lasci come input per KNN o ANN o quant'altro, avrai gli stessi risultati.

Problemi correlati