¿Cómo mapear una trayectoria a un vector?


9

Tengo una serie de puntos de datos en este formulario (marca de tiempo, lat, largo) para un conjunto de usuarios. Cada usuario tiene una trayectoria cuando viaja del punto A al punto B. Puede haber cualquier número de puntos de A a B. Son puntos de datos ordenados en función de la marca de tiempo. Quiero transformarlos como un vector para hacer varias tareas de análisis. Un pensamiento que tengo es mirar los giros y hacerlos como una dimensión. Me gustaría saber más enfoques. Lo que quiero es un vector que represente toda la trayectoria, piense en él como un punto para una trayectoria. Ahora tengo una colección de puntos en 3D.

Me gustaría hacer una búsqueda de similitud de trayectoria. Si hay dos trayectorias que en el tiempo viajan cerca una de la otra, entonces son similares. Piénselo así, va de casa a trabajar a las 9 a.m. Alguien más a las 9:10 am también está en su casa para trabajar y se mantiene a cierta distancia de usted. Como tienes el mismo lugar de trabajo, lo más probable es que tengas la misma trayectoria. Algo así como un clasificador construido sobre una trayectoria. Puedo hacer detección de actividad en una trayectoria, también puedo hacer un análisis de origen y destino.


44
¿Puedes dar un ejemplo de transformación a vector? Desde el punto de vista matemático, sus datos ya son una colección de vectores en un espacio tridimensional, claramente desea algo más. Entonces el ejemplo sería muy bienvenido.
mpiktas

1
También es importante qué tipo de análisis se debe ejecutar. Como primer paso, intentaría una expansión de Karhunen-Loeve en los caminos (ingenuamente vectorizados) de todos modos, eso construiría "automáticamente" la estructura necesaria para capturar las características del camino.
Quartz

Me temo que la edición no responde al comentario de @Quartz, que solicita información esencial: ¿qué tipo de "diversas tareas de análisis" contempla?
whuber

1
@Quartz La misma curva geométrica recorrida a diferentes patrones de velocidad es relevante para mí
gizgok

3
posible duplicado de medidas
bdecaf

Respuestas:


1

Comenzaría con una deformación dinámica del tiempo . Siempre que tenga la distancia entre dos puntos (lat, long), este enfoque debería funcionar. Se ajusta a diferentes velocidades de movimiento. Por ejemplo, usted y yo vivimos en el mismo pueblo y vamos a trabajar a la misma fábrica, pero me detengo en una cafetería en el camino. Tardo más en llegar, pero estamos más o menos en el mismo camino, por lo que la medida de similitud se ajusta a diferentes escalas de tiempo.

Esto es diferente de lo que tienes en mente. Parece que desea obtener un valor (vector) para representar la trayectoria, luego calcular la distancia entre los vectores. Le sugiero que use la medida de distancia entre las trayectorias directamente, sin paso intermedio.


0

Si solo considera giros instantáneos, es decir, cambios de dirección, no creo que esto defina de manera única la posición en la próxima instancia, a menos que cada usuario viaje a una velocidad constante conocida (no hay indicación de esto en su pregunta) . Como se está moviendo a través de una superficie (esférica, ¿infiero?), Probablemente necesitará al menos una segunda coordenada para determinar sus posiciones de manera única. ¿Por qué no simplemente construir el2×N formación [x(t);y(t)] por usuario con marca de tiempo como parámetro, luego concatene esto a un 1×(2N) vector [x(t)y(t)] debes tener un vector (o 1×(2norte×METRO) para METROusuarios etiquetados? También puedes tomar la longitud del arcos(t)para la ruta recorrida como parámetro en su lugar. Son las marcas de tiempo a intervalos regulares; de lo contrario, necesitará un vector separado para buscarlos. PD: no puedo ver un enlace con estadísticas; ¿Es esto relevante para Cross Validated?


0

Para cada usuario, tiene dos series de tiempo, lat (t) y long (t). Creo que esa es la representación más simple: no trataría de complicar las cosas convirtiéndome en alguna definición de giros, lo que no solo sería más difícil, sino que también requeriría tener mucho cuidado con el punto de partida inicial y tratarlo de manera diferente en cualquier análisis. (Probablemente también sea más ruidoso).

Mantener los datos como series temporales largas y largas también lo hace simple para el uso más probable, donde mirará varias ventanas de tiempo en diferentes momentos; no es necesario volver a calcular constantemente un punto de partida al comienzo de una nueva ventana de tiempo siendo analizado

Si todas las series de tiempo de los usuarios lat y long se muestrearon exactamente al mismo tiempo, como se indicó en otra respuesta, puede concatenar los dos vectores de series de tiempo en un vector largo. Un ejemplo similar que tenía 5 series de tiempo era la siguiente:
. Luego, tiene un vector largo para cada usuario que puede analizar como cualquier otro vector para reconocimiento de patrones, medidas de distancia, agrupación, etc.

Para las medidas de distancia entre usuarios, generalmente usará un formulario ponderado según la aplicación. Por ejemplo, cuando se enfoca en la convergencia hacia un destino común, aumentaría más los pesos hacia el final de la ventana de tiempo (ya sea mirando cálculos euclidianos, distancia máxima, etc.).

Pero, la pregunta original parece decir que puede haber diferentes números de puntos entre A y B para diferentes usuarios. Y en cualquier caso, incluso para el mismo intervalo de muestreo, es probable que los tiempos no sean exactamente los mismos (tal vez difieran en alguna constante porque el muestreo comenzó en diferentes momentos). Además, es muy posible que falten algunos datos. En cualquiera de estos casos, conceptualmente, necesitaría pensar en cada serie de tiempo en forma continua, tal vez ajustando una curva y volviendo a muestrear a cada usuario exactamente al mismo tiempo. (Eso es análogo al remuestreo que ocurre en el análisis de fotos cuando encoges una imagen). Entonces sus vectores de series de tiempo para lat y long son de la misma longitud y corresponden exactamente a los mismos tiempos,

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.