2013-02-26 12 views
5

Ho una grande quantità di lat/lon temporale.clustering per traiettorie

Sto cercando di trovare k-cluster di traiettorie da questi dati. Qual è l'approccio migliore per questo?

Grazie.

Edit:

Come devo generare le caratteristiche per i miei dati (lat/lon + tempo) al fine di utilizzare Kmeans/clustering gerarchico?

Edit:

Speriamo che questo renderà più chiaro

Ecco un esempio di come il mio sguardo di dati:

 
Trajectory 1: 

lat1,lon1 at time1 
lat2,lon2 at time2 
... 
lat55,lon55 at time55 
 
Trajectory 2: 

lat343,lon343 at time343 
lat344,lon344 at time344 
... 
lat376,lon376 at time376 

E così via (altro paio di traiettorie).

Quindi dire che ho 200 di queste traiettorie, voglio raggrupparle in 2 gruppi. Come dovrei avvicinarmi a questo?

Devo usare kmeans/HAC per questo o dovrei guardare un altro metodo?

Edit:

L'obiettivo di questo è quello di classificare le traiettorie in cluster k che rappresentano k diverse direzioni delle traiettorie.

Semplicemente, sto solo cercando di raggruppare le traiettorie in gruppi di direzioni diverse. Non sono preoccupato per le loro somiglianze .

così dicono alla fine voglio trovare qualcosa di simile:

 
Direction 1: 
Trajectory 4 
Trajectory 5 
Trajectory 7 
 
Direction 2: 
Trajectory 44 
Trajectory 2 
Trajectory 27 

...

 
Direction 10: 
Trajectory 17 
Trajectory 8 

Nota: Le forme delle traiettorie sono per lo più linee (non lineare linee), alcuni sono in loop.
Nota: lat/lon sono super locali in una regione, quindi è possibile utilizzare un'approssimazione di terra piatta.

Le istruzioni devono essere molto approssimative. Come faccio a calcolare la somiglianza tra le traiettorie per raggrupparle per raggiungere questo obiettivo?

Edit:

Ecco un esempio (al meglio delle mie capacità):

Trajectories and End result

voglio separare le traiettorie nelle direzioni in quanto tali.

+0

Non sto ottenendo il tuo punto qui esattamente .. è quello che stai chiedendo è l'estrazione di funzionalità? se è così, allora non ha nulla a che fare con il clustering. –

+0

No, non chiedo informazioni sull'estrazione delle funzionalità. Sto chiedendo come raggruppare le traiettorie date lat/lon + time per ogni lat/lon. Dite che conosco il numero di cluster da 2, come faccio a raggruppare le traiettorie in 2 cluster? Non posso fare qualcosa di ingenuo come usare lat/lon e sottrarre l'inizio di lat/lon. – kietdlam

+1

OK, non sono sicuro al 100% qui perché il caso non è chiaro per me (comunque è difficile descrivere un caso di DM entro un paio di righe). ma hai provato k-means per quelle tre dimensioni che hai menzionato (lat/lon + time). distanza euclidea ti aiuterebbe a elaborare i k-mezzi con 'centroidi' e tutto il resto .. Sono più vicino al tuo punto ora? –

risposta

3

K-means è progettato intorno a minimizzando la varianza.

Quando lo si applica a dati longitudinali, si ottiene un errore a meno che non si sia sempre vicini all'equatore e si tenga lontano dal 180 meridiano. Poiché la terra è approssimativamente una superficie della sfera , non uno spazio vettoriale euclideo infinito.

Provare invece un algoritmo di clustering basato su distanza o densità che può utilizzare distanza di cerchio grande, ad esempio. Il clustering gerarchico può essere una scelta migliore di k-means.

La distanza del cerchio grande è solo tra due punti. Quindi la prossima cosa per è da fare è capire come combinare queste distanze e il componente temporale in un opportuno misura di somiglianza per le tue traiettorie. Questo è abbastanza dipendente dall'utilizzo e non esiste una soluzione universale che potremmo condividere con voi. Quanto migliore è la funzione di similarità, tanto migliori saranno i risultati del clustering!

+0

Non sono sicuro di cosa stai cercando di ottenere. Non sto raggruppando dati puramente lat/lon. Sto cercando di raggruppare le traiettorie in k-cluster dati dal componente lat/lon + a time. – kietdlam

+0

Sì, e i cluster sono significativi, dato che k-means non comprende "latitudine", "longitudine", "tempo" e la loro relazione? Vedi, assume uno spazio vettoriale euclideo. Ma la superficie terrestre è approssimativamente una superficie di una sfera. –

+0

Capisco perché sei preoccupato per l'utilizzo di kmea per lat/lon. Non penso ancora che sia importante perché il lat/lon è super locale per una regione, quindi posso assumere un'approssimazione di terra piatta. – kietdlam

1

Il modo in cui descrivi il problema suona come se fosse possibile rappresentare tutte le traiettorie come un angolo relativo all'equatore. Si scende quindi alla segmentazione; questo non è proprio il clustering; vedere per es. https://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization. Nel tuo caso i valori circolerebbero intorno, quindi sarebbe segmentare i valori su un cerchio (usando gradi/angoli) piuttosto che su una linea retta. Naturalmente, se questo descrive il tuo problema, fornisce anche un buon modo di visualizzarlo.

+0

No, non posso rappresentare le traiettorie come un angolo perché non sono linee diritte. Non è chiaro come utilizzerei l'ottimizzazione delle interruzioni naturali di Jenks sui miei dati. Puoi spiegare ulteriormente? – kietdlam

+0

Bene, si scrive "Le direzioni devono essere molto approssimative, quindi la Direzione 1 potrebbe essere come Nord a Sud, mentre la Direzione 2 potrebbe essere da Sud a Nord ecc ...". Questo è certamente rappresentabile come una linea retta/angolo. Capisco che questo descriva il risultato desiderato, ma sembra logico quindi astrarre il tuo input allo stesso livello. Se * non * vuoi comprimere l'input in una rappresentazione così cruda, allora sorge la domanda: come calcoli la similarità tra le traiettorie? Questo sembra essere il punto cruciale del problema. – micans

+0

Sì, hai ragione, mi dispiace per la confusione – kietdlam

0

Dynamic time warping (DTW) produce una metrica di similitudine che viene in genere utilizzata con i dati delle serie temporali (che è ciò che si ha). È quindi possibile utilizzare queste somiglianze DTW come input per qualsiasi numero di algoritmi di clustering basati sulla somiglianza.

Per il set di dati, estrarre le sequenze di orientamenti solo perché l'inclusione del componente di distanza potrebbe causare problemi se i percorsi sono percorsi a velocità diverse o se i campioni vengono prelevati a intervalli di tempo eterogenei.

+0

Grazie per il suggerimento, lo esamineremo :) – kietdlam