Como mapear uma trajetória para um vetor?

9

Eu tenho uma série de pontos de dados neste formulário (timestamp, lat, long) para um conjunto de usuários. Cada usuário tem uma trajetória quando viaja do ponto A ao ponto B. Pode haver qualquer número de pontos de A a B. Eles são pontos de dados ordenados com base no registro de data e hora. Eu quero transformá-los como um vetor para executar várias tarefas de análise. Um pensamento que tenho é olhar para as curvas e transformá-las em uma dimensão. Eu gostaria de saber mais abordagens. O que eu quero é um vetor que represente toda a trajetória, pense nele como um ponto para uma trajetória. Agora, tenho uma coleção de pontos em 3D.

Eu gostaria de fazer uma pesquisa de similaridade de trajetória. Se existem duas trajetórias que, com o tempo, estão se aproximando, elas são semelhantes. Pense assim: você vai de casa para o trabalho às 9h. Alguém às 9h10 também é sua casa para trabalhar e fica a alguma distância de você. Como você tem o mesmo local de trabalho, provavelmente terá a mesma trajetória. Algo como um classificador construído em cima de uma trajetória. Posso fazer a detecção de atividades em uma trajetória, também posso fazer uma análise do destino da fonte.

gizgok
fonte
4
Você pode dar um exemplo de transformação em vetor? Do ponto de vista matemático, seus dados já são uma coleção de vetores no espaço tridimensional, claramente você deseja outra coisa. Portanto, o exemplo seria muito bem-vindo.
mpiktas 02/07/2013
1
Também é importante que tipo de análise deve ser executada. Como primeiro passo, eu tentaria uma expansão de Karhunen-Loeve nos caminhos (ingênuos vetorizados) de qualquer maneira, que "automaticamente" construiria a estrutura necessária para capturar os recursos do caminho.
Quartzo
Receio que a edição não responda ao comentário do @Quartz, que pede informações essenciais: que tipo de "várias tarefas de análise" você considera?
whuber
1
@Quartz A mesma curva geométrica viajou em diferentes padrões de velocidade é relevante para mim
gizgok
3
possível duplicata de medidas
precisa saber é o seguinte

Respostas:

1

Eu começaria com a distorção dinâmica do tempo . Desde que você tenha a distância entre dois pontos (lat, long), essa abordagem deve funcionar. Ajusta para diferentes velocidades de movimento. Por exemplo, você e eu moramos na mesma vila e vamos trabalhar na mesma fábrica, mas paro em uma cafeteria no caminho. Leva mais tempo para eu chegar, mas estamos mais ou menos no mesmo caminho, então a medida de similaridade se ajusta a diferentes escalas de tempo.

Isso é diferente do que você tem em mente. Parece que você deseja criar um valor (vetor) para representar a trajetória e calcular a distância entre os vetores. Estou sugerindo que você use a medida de distância entre as trajetórias diretamente, sem etapa intermediária.

Aksakal
fonte
0

2×N[x(t);y(t)]1×(2N)[x(t)y(t)]1×(2N×M)Ms(t)

Lucozade
fonte
0

Para cada usuário, você tem duas séries temporais, lat (t) e longa (t). Eu acho que é a representação mais simples - eu não tentaria complicar as coisas convertendo para alguma definição de turnos, o que não seria apenas mais difícil, mas também exigiria muito cuidado com o ponto de partida inicial e o trataria de maneira diferente em qualquer análise. (Provavelmente também é mais barulhento.)

Manter os dados como séries temporais latinas e longas também facilita a utilização mais provável - onde você verá várias janelas de horário em momentos diferentes - não é necessário recalcular constantemente um ponto de partida no início de uma nova janela de horário sendo analisado.

Se todas as séries temporais de todos os usuários, lat e long, foram todas amostradas exatamente nos mesmos horários, conforme observado em outra resposta, é possível concatenar os dois vetores de séries temporais em um vetor longo. Um exemplo semelhante que teve 5 séries de tempo ficou assim:
. Então você tem um vetor longo para cada usuário que pode ser analisado como qualquer outro vetor para reconhecimento de padrões, medidas de distância, agrupamento etc.

Para medidas de distância entre usuários, você normalmente usa um formulário ponderado, dependendo do aplicativo. Por exemplo, ao focar na convergência em direção a um destino comum, você aumentaria mais os pesos no final da janela de tempo (analisando cálculos euclidianos, distância máxima, etc.).

Mas, a pergunta original parece dizer que pode haver números diferentes de pontos entre A e B para diferentes usuários. De qualquer forma, mesmo para o mesmo intervalo de amostragem, é provável que os horários não sejam exatamente os mesmos (talvez diferindo por alguma constante porque a amostragem começou em momentos diferentes). Além disso, é bem possível que haja alguns dados ausentes. Em qualquer um desses casos, conceitualmente, você precisaria pensar em cada série temporal de forma contínua, talvez ajustando uma curva a ela e redefinir a amostra de todos os usuários exatamente nos mesmos horários. (Isso é análogo à reamostragem que ocorre na análise de fotos quando você reduz uma imagem). Seus vetores de séries temporais para lat e long têm o mesmo comprimento e correspondem exatamente aos mesmos horários,

gms
fonte