Ho dati n dimensionali e voglio controllare l'integrità, posso effettuare il downgrade a 2 spazio delle caratteristiche dimensionali tramite PCA e fare così?

datascience.stackexchange https://datascience.stackexchange.com/questions/18280

Domanda

Di 'Ho campioni di dati dimensionali n. Voglio verificare l'integrità delle caratteristiche, se sono buoni rappresentazione delle rispettive classi, vale a dire queste caratteristiche sono buone o no.

Il mio piano è:

Io uso PCA e convertire questo a 2 i dati dim. Tracciare questi dati. Vedere se sono abbastanza separabili.

Fa il suono piano di sopra va bene per il test per vedere se le caratteristiche sono di buono?

È stato utile?

Soluzione

Questo stava per essere un commento, ma è cresciuto a una risposta. Penso che ci dovrebbe essere qualche chiarimento, perché la domanda stessa non è specificamente la visualizzazione, ma controllando la "integrità" delle caratteristiche.

PCA lavorerà per rendere una generalizzazione del set di dati nel suo complesso. Si tratta di un punto di partenza molto standard per l'esplorazione dei dati. Se le prime 2 componenti mostrano una separazione chiara, questo è un indicatore abbastanza solido che almeno alcuni di proiezione dei tuoi dati può ben rappresentare le classi. Così, risposta è sì . Se i primi 2 componenti non mostrano separazione, ciò non significa che le caratteristiche sono necessariamente errate, significa solo che i primi due componenti non spiegano la maggioranza della variabilità nel set di dati.

Selezione funzione viene utilizzata per verificare l'integrità / rilevanza / valore delle singole funzioni e come influenzano il modello. È possibile utilizzare foresta casuale gini importanza per classificare le vostre caratteristiche o regolarizzazione lazo per con convalida incrociata per scoprire come le caratteristiche individuali sono ponderati in un registro. reg. modello (ciò richiede un po 'più di lavoro come i coefficienti non sono necessariamente una misura esatta della variabile importanza). selezione delle funzioni e la convalida incrociata sono i modi più diretti di determinare l'integrità funzione. PCA è principalmente un buon primo passaggio e disponibile la visualizzazione.

Altri suggerimenti

t-END può essere utile per visualizzare i dati ad alta dimensionale per proiezione 2D o 3D. Al contrario di PCA, t-END impara una trasformazione non lineare che conserva la struttura di dati globale. Sklearn fornisce un facile da usare l'esecuzione di t-END in qui .

Con buona presumo si sta cercando di capire se le caratteristiche sono abbastanza differenti? Dipende dalle vostre set di dati in realtà. Come smallchess ha sottolineato, PCA è comunemente utilizzato e può lavorare con il vostro set di dati. Provalo e vedere se le diverse classi sono distinte? In caso contrario, si può provare a utilizzare più elevati strumenti di visualizzazione tridimensionale.

Inoltre, con PCA si sta riducendo le dimensioni a nuove funzionalità che possono o non possono essere intuitiva di significato. Tale interpretazione ha più complicata. Se stai cercando di visualizzare i dati, perché non andare con visualizzazioni dimensione superiore? Nel caso in cui non si è a conoscenza dei diversi strumenti a disposizione .. Ecco una domanda con grandi risposte su Quora circa maggiore dimensione visualizzazione

Tra gli strumenti consigliati, Andrews trama e coordinate parallele appezzamenti sono molto popolari. Io suggerirei di usare questi strumenti invece di utilizzare PCA e successivamente tramando per lo scopo che stai descrivendo. Se avete bisogno di visualizzare i dati, a volte si può solo ottenere una statistica di sintesi / descrizione dei set di dati (media, varianza, min, max, ecc). Di seguito è riportato un esempio di una trama Andrews. È possibile tracciare le varie classi in colori diversi per vedere se ci sono delle differenze distinguibili tra le classi. example Plot Andrews sulla documentazione Matlab

Se questo non è quello che stai cercando, di visualizzare i dati per valutare la rappresentazione, basta passare per provare e costruire un modello con le caratteristiche e vedere se si ottiene un buon punteggio?

Edit: Qui ci sono alcune lacune di PCA..if ci sono informazioni che di travisato, non fatemi sapere! Una cosa da notare è che con PCA, la sua trasformazione è ortogonale. A volte i dati è necessaria la rappresentazione non ortogonale. Questo dipende molto da come il tuo aspetto dati come. Per fare un esempio, dare un'occhiata al diagramma qui sotto. Esempio di carenze PCA

Nell'esempio precedente, PCA non riesce a trovare i PC che massimizza la varianza a causa di ortogonalità. Independent Analisi fattoriale può funzionare meglio. Inoltre, se hai intenzione di utilizzare i dati trasformati per costruire il vostro modello su, ci possono essere limitazioni con dati trasformati linearmente. A volte abbiamo bisogno PC non lineari. Vedere l'esempio di seguito dalla pagina web scikit.

Scikit kernel APC

In tal caso, un PCA kernel (utilizzando un trucco kernel simile a SVM) può funzionare meglio ottenendo una proiezione per ottenere una migliore distinzione lineare.

Ci sono ottimi suggerimenti di cui sopra per quanto riguarda il problema. In un altro approccio, (in qualche modo simile ma non uguale menthods basato PCA menzionato sopra) è quello di utilizzare un compressivo autoencoder rete e addestrarlo classwise (o uno autoencoder). La compressione può essere da multi-dimensione 2 dimensioni e può essere facilmente stampato. Dal momento che l'autoencoder (s) avrebbe imparato a rappresentare diverse classi, se la funzionalità selezionate per l'insieme di dati originale può suddividere lo spazio di dati in modo adeguato, poi in un grafico a dispersione 2D le differenze potrebbero essere fatti fuori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top