Esiste un metodo opposto alla riduzione della dimensionalità?


9

Sono nuovo nel campo dell'apprendimento automatico, ma ho fatto la mia parte di elaborazione del segnale. Per favore fatemi sapere se questa domanda è stata etichettata erroneamente.

Ho dati bidimensionali che sono definiti da almeno tre variabili, con un modello altamente non lineare troppo complicato per simulare.

Ho avuto vari livelli di successo nell'estrarre i due componenti principali dai dati usando metodi come PCA e ICA (dalla libreria Python Scikit-Learn), ma sembra che questi metodi (o almeno, questa implementazione dei metodi) siano limitati per estrarre tanti componenti quante sono le dimensioni nei dati, ad esempio 2 componenti da una nuvola di punti 2D.

Quando si tracciano i dati, è chiaro all'occhio allenato che ci sono tre diverse tendenze lineari, le tre linee di colore mostrano le direzioni.

trama dei dati

Quando si utilizza PCA, il componente principale è allineato a una delle linee di colore e l'altro è a 90 °, come previsto. Quando si utilizza ICA, il primo componente è allineato con la linea blu e il secondo è da qualche parte tra il rosso e il verde. Sto cercando uno strumento in grado di riprodurre tutti e tre i componenti nel mio segnale.

EDIT, Ulteriori informazioni: sto lavorando in un piccolo sottoinsieme di un piano di fase più grande. In questo piccolo sottoinsieme, ogni variabile di input produce un cambiamento lineare sul piano, ma la direzione e l'ampiezza di questo cambiamento non è lineare e dipende da dove esattamente sto lavorando sul piano più grande. In alcuni punti, due delle variabili possono essere degenerate: producono un cambiamento nella stessa direzione. per esempio, supponiamo che il modello dipenda da X, Y e Z. Una variazione nella variabile X produrrà una variazione lungo la linea blu; Y provoca una variazione lungo la linea verde; Z, lungo quello rosso.


3
Se ho capito bene, il concetto che stai cercando è l' incorporamento . Cerca i metodi del kernel e in particolare il kernel PCA .
Emre,

1
Non ne sono sicuro, quindi non lo sto pubblicando come risposta. In un tipo di modello di rete neurale, è possibile mantenere la dimensionalità del livello nascosto> dimensionalità del livello di input. Quindi è possibile utilizzare il livello nascosto come input per un'altra rete / modello. Ma farlo richiede molti dati.
Azrael,

Quando dici dati bidimensionali, definiti da almeno tre variabili, in che senso usi il termine 'variabile'? Le lezioni sarebbero una sostituzione adatta? Vale la pena notare che PCA estrae le dimensioni al massimo delle varianti dai dati, questa non è necessariamente la trasformazione più discriminatoria da applicare. Hai visto il clustering?
image_doctor,

Sai qualcosa sulla non linearità del modello? Sebbene possa essere troppo complesso da simulare, sapere che è composto al massimo da polinomi di grado 3 limita in modo significativo l'ingegnerizzazione delle funzionalità, ad esempio è possibile aggiungere tutti i poligoni di 3 ° grado e quindi PCA ridimensionarli in 3D.
AN6U5,

Ho discusso con un mio amico statistico che mi ha suggerito di usare il kernel PCA sulla derivata dei miei dati, poiché sto cercando pendenze. Prendere il conteggio derivato come "feature engineering"?
PhilMacKay,

Risposte:


8

La risposta breve è sì.

Essenzialmente eseguirai una sorta di ingegneria delle funzionalità. Ciò significa costruire una serie di funzioni dei tuoi dati, spesso:

ϕj(x):RpR ,  j=1,...,K

Il che, legati insieme, definire un vettore di dati trasformati di lunghezza .ϕ(x)K

Ci sono molti modi, nel bene e nel male, di farlo. Potresti cercare termini come:

  1. Spline e modelli di additivi generalizzati.
  2. Il trucco del kernel (come creare un modello in cui ).K
  3. Ingegnerizzazione delle funzionalità (della varietà manuale, ad es. Aggiunta di una colonna ai dati).x2
  4. Apprendimento profondo, apprendimento della rappresentazione

Come puoi immaginare da una serie di tecniche così varie, questa è una vasta area. Va da sé davvero, ma bisogna fare attenzione per evitare un eccesso di adattamento.

Questo documento sull'apprendimento della rappresentazione: una recensione e nuove prospettive affronta alcune delle problematiche relative a ciò che rende un insieme particolare di funzioni "buone", da una prospettiva di apprendimento approfondito.


-2

Suppongo che tu stia cercando funzionalità che estraggano nuove funzionalità. Una funzionalità che rappresenta al meglio il set di dati. In tal caso, chiamiamo tale metodo "estrazione di funzioni".

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.