Domanda

Ho una serie di dati costituiti da serie temporali (8 punti) con circa 40 dimensioni (così ogni serie temporale è 8 40). Le corrispondenti ouput (i possibili esiti per le categorie) è eitheir 0 o 1.

Quale sarebbe il miglior approccio per la progettazione di un classificatore per le serie temporali con dimensioni multiple?

La mia strategia iniziale era quello di estrarre le caratteristiche da quelli tempo serie: media, std, la massima variazione per ogni dimensione. Ho ottenuto un set di dati che ho usato per addestrare un RandomTreeForest. Essere consapevoli della ingenuità totale di questo, e dopo aver ottenuto scarsi risultati, sono ora alla ricerca di un modello più migliorata.

I miei contatti sono i seguenti: classificare la serie per ogni dimensione (utilizzando KNN algoritmo e DWT), ridurre la dimensionalità con PCA e utilizzare un classificatore finale lungo le categorie universo multi. Essendo relativamente nuovo per ML, non so se io sono totalmente sbagliato.

È stato utile?

Soluzione

Sei sulla strada giusta. Guardate il calcolo di un paio di caratteristiche, sia nel dominio del tempo e della frequenza. Fino a quando il numero di campioni >> serie di caratteristiche, non sono suscettibili di sovradattamento. Esiste una letteratura su un problema simile? Se è così, che fornisce sempre un ottimo punto di partenza.

Prova un albero classificatore potenziato, come xgboost o LightGBM. Essi tendono ad essere più facile da mettere a punto iperparametri, e fornire buoni risultati con i parametri di default. Sia foresta casuale e classificatori albero potenziati possono tornare caratteristica importante, in modo da poter vedere quali caratteristiche sono rilevanti per il problema. Si può anche provare a rimuovere le caratteristiche per verificare eventuali covarianza.

La cosa più importante, però, se i risultati sono inaspettatamente poveri, assicurare il vostro problema sia ben definito. Verificare manualmente attraverso i risultati per assicurarsi che non ci siano errori nel vostro cantiere.

Altri suggerimenti

Se siete in Python, ci sono un paio di pacchetti che possono estrarre automaticamente centinaia o migliaia di caratteristiche dai vostri timeseries, correlarli con le etichette, scegliere i modelli più significativi, e dei treni per voi.

https://github.com/blue-yonder/tsfresh

https://github.com/rtavenar/tslearn

È possibile aggiungere ulteriori funzionalità al vostro set di dati, come di seguito.

  1. Si può provare il pacchetto nolds se i dati sono da un processo altamente non lineare.

  2. max, min, media, skew, curtosi, e, se possibile, alcune statistiche rotolamento.

sto lavorando su qualcosa di simile, e ho chiesto a un correlata domanda .

Sono d'accordo con Jan van der Vegt, la standardizzazione (per esempio, [-1, 1]) o normalizzazione N (0, 1) in combinazione con la funzione di attivazione può essere molto importante con le reti neurali. Vorrei verificare la tesi di Pichaid Varoonchotikul: “la previsione delle piene utilizzando le reti neurali artificiali” per i pro ei contro di RNA. Ha avvertimenti molto interessanti. Ad ogni modo, io sono uso a provare per primo, senza, ma quando i risultati non sono soddisfacenti, io sono l'uso di prove fatte sia con entrambi. Non sono sicuro che vi aiuterà, ma vorrei controllare il pacchetto R TSclust e documenti correlati. Gli autori sono molto gentilmente e che vi aiuterà a trovare modelli specifici per farlo. Sono esperti in analisi di serie temporali! Buona fortuna!

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