PCA quando la dimensionalità è maggiore del numero di campioni


21

Mi sono imbattuto in uno scenario in cui ho 10 segnali / persona per 10 persone (quindi 100 campioni) contenenti 14000 punti dati (dimensioni) che devo passare a un classificatore. Vorrei ridurre la dimensionalità di questi dati e PCA sembra essere il modo per farlo. Tuttavia, sono stato in grado di trovare solo esempi di PCA in cui il numero di campioni è maggiore del numero di dimensioni. Sto usando un'applicazione PCA che trova i PC usando SVD. Quando passo il mio set di dati 100x14000, vengono restituiti 101 PC, quindi la stragrande maggioranza delle dimensioni viene ovviamente ignorata. Il programma indica che i primi 6 PC contengono il 90% della varianza.

È ragionevole supporre che questi 101 PC contengano essenzialmente tutta la varianza e che le dimensioni rimanenti siano trascurabili?

Uno degli articoli che ho letto afferma che, utilizzando un set di dati simile (anche se leggermente inferiore) del mio, sono stati in grado di ridurre 4500 dimensioni fino all'80 mantenendo il 96% delle informazioni originali. La carta ondeggia sui dettagli della tecnica PCA utilizzata, erano disponibili solo 3100 campioni e ho motivo di ritenere meno campioni di quelli utilizzati per eseguire effettivamente il PCA (per rimuovere la distorsione dalla fase di classificazione).

Mi sto perdendo qualcosa o è davvero il modo in cui il PCA viene utilizzato con un set di dati ad alta dimensionalità e dimensioni ridotte del campione? Qualsiasi commento sarebbe molto apprezzato.


2
Se non disponi di molti più dati delle dimensioni, è difficile trovare una direzione che rimuova la maggior parte della variabilità che è ciò che il primo componente principale dovrebbe fare. In generale c'è la maledizione della dimensionalità. I dati tendono ad allontanarsi dal centro in dimensioni elevate. Bellman ne scrisse negli anni '60.
Michael R. Chernick,

Risposte:


9

Guarderei il problema da un'angolazione leggermente diversa: quanto può essere complesso un modello con solo 10 soggetti / 100 campioni?

E a questa domanda di solito rispondo: molto meno di 100 PC. Nota che lavoro su un diverso tipo di dati (spettri vibrazionali), quindi le cose possono variare leggermente. Nel mio campo un set comune userebbe 10 o 25 o 50 PC calcolati da spettri O (1000) di soggetti O (10).

Ecco cosa farei:

  • Guarda la varianza coperta da quei 100 PC. Di solito trovo che solo pochi componenti contribuiscono davvero alla varianza nei nostri dati.

  • Preferisco di gran lunga il PLS come pretrattamento per la classificazione tramite PCA in quanto svolge un lavoro molto migliore nello smistare le direzioni che presentano una variazione elevata che non aiuta la classificazione (nel mio caso potrebbero essere variazioni di messa a fuoco, diverso spessore del campione,. ..). Nella mia esperienza, ottengo spesso classificatori simili con 10 variabili latenti PLS o da 25 a 50 PC.

  • I campioni di convalida devono essere elaborati con la rotazione PCA calcolata solo dal set di addestramento, altrimenti la convalida può (e in casi estremi come il tuo molto probabilmente avrà) una grande distorsione eccessiva.
    In altre parole, se si esegue la convalida fuori avvio o la convalida incrociata, è necessario calcolare separatamente la preelaborazione PCA o PLS per ciascuna combinazione treno / set di test.


Grazie per i post molto istruttivi. Sto lavorando con i dati del segnale biometrico. Per eseguire la classificazione con prestazioni ragionevoli ho bisogno di meno di 100 PC, da qualche parte nell'intervallo 25-50 andrebbe bene. Ho preso in considerazione la riduzione della mia frequenza di campionamento per ridurre il numero di campioni che devo esaminare, ma ti aspetteresti che ne valga la pena il compromesso della risoluzione o avrà alcun effetto dato che la stessa dimensione dell'allenamento rimane la stessa ? Anche se ho bisogno che il PCA sia coerente con altri studi nel campo, esaminerò sicuramente il PLS come approccio secondario.
James

1
@James: temo di non poter rispondere alla domanda sulla frequenza di campionamento senza conoscere i tuoi dati. In sostanza si tratta della dimensione effettiva del campione. Senza sapere altro, possiamo solo dire che è da qualche parte tra n (persone) e n (campioni). Se tutti e 10 i campioni di 1 persona sono molto più simili tra loro rispetto ai campioni di una persona diversa, quindi più campioni non aggiungono molte informazioni al set di dati. Puoi verificarlo costruendo un modello con tutti i campioni e un secondo modello con un solo campione per persona e confrontandone le prestazioni.
cbeleites supporta Monica

@James: (parte 2) Se pensi che i campioni di una persona siano piuttosto simili tra loro, allora dovresti fare attenzione che i set di validazione e addestramento non condividano la persona (cioè tutti i campioni di una persona sono in formazione o in set di test).
cbeleites supporta Monica

Grazie per essere tornato da me. I miei dati hanno un grado piuttosto elevato di variabilità con una significativa sovrapposizione nello spazio di campionamento tra le classi di utenti. Ma scusate, piuttosto che ridurre i campioni, intendevo ridurre la risoluzione sui 14000 punti dati, quindi diciamo che ogni PC, ogni secondo, terzo o quarto punto sono stati usati in PCA, ma con lo stesso numero di campioni utente reali. Ero curioso di sapere se un tale calo di risoluzione avrebbe avuto un impatto positivo, negativo o nullo sui risultati del PCA, dato che le mie dimensioni sono già molto più grandi dei miei campioni.
James

1
th


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.