Gostaria de calcular a medida de semelhança entre dois conjuntos de pontos ordenados - os de Usuário em comparação com os de Professor :
Os pontos são curvas no espaço 3D, mas eu estava pensando que o problema seria simplificado se os plotasse em duas dimensões, como na figura. Se os pontos se sobrepuserem, a similaridade deve ser 100%.
Respostas:
Você está comparando trajetórias ou curvas . Este é um tópico estudado. A análise de procrustes e a distorção dinâmica do tempo , como diz o EMS, são ferramentas do comércio. Depois de alinhar as curvas, você deseja medir a distância, diga a distância de Fréchet . Se você quiser compartilhar alguns de seus dados, poderíamos fazer uma descoberta deles mesmos.
Leitura relevante:
Se você desconsiderar a dimensão temporal:
Você pode ajustar o Usuário e o Professor para multivariadas densidades Gaussianas e encontrar o volume de seus produtos - isso é bastante fácil. Se você quiser mais precisão, poderá usar uma estimativa de densidade não paramétrica.
fonte
Você pode considerar a distância de Procrustes ou alguma distância com base na distorção dinâmica do tempo (mesmo que uma de suas dimensões não seja "tempo" por si só, você ainda pode usar essa ideia de transformação). Veja este trabalho recente em Tracklets para um caso de uso ilustrativo de distorção dinâmica do tempo para medir a similaridade entre curvas espaciais 3D esculpidas por trajetórias de pontos em vídeos.
Existem muitas bibliotecas com cálculos de distância Procrustes embutidos, como Matlab, ou a biblioteca PyGeometry para Python.
fonte
A postagem original solicitou uma métrica entre os pontos PEDIDOS em 3D. A única métrica desse tipo é a distância de Frechet. Não houve menção de tempo como uma das dimensões, portanto, eu assumiria que todas as dimensões têm unidades de distância (isto é, as unidades não são misturadas). Isso pode ser feito modificando uma função recentemente carregada na troca de arquivos do MathWorks (cálculo da distância Frechet: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Essas rotinas foram escritas para pontos no plano, mas a extensão para os pontos 3D é simples.
fonte
Distância Hausdorff pode ser o que você está procurando. Hausdorff A distância entre dois conjuntos de pontos e é definida como, .Y d H ( X , Y ) = max { sup x ∈ X inf y ∈ Y | | x - y | | , Sup y ∈ Y inf x ∈ X | | x - y | | }X Y dH(X,Y)=max{supx∈Xinfy∈Y||x−y||,supy∈Yinfx∈X||x−y||}
fonte
A similaridade é a quantidade que reflete a força do relacionamento entre dois objetos ou dois recursos. Essa quantidade geralmente está no intervalo de -1 a +1 ou normalizada em 0 a 1. Do que você precisa calcular a distância de dois recursos por um dos métodos abaixo:
Para a linha ... você pode representá-lo pelas propriedades de ângulo (a) e comprimento (l) ou L1 = P1 (x1, y1), P2 (x2, y2) abaixo é a semelhança com a e l.
agora meça o ângulo para ângulos e comprimentos
Usando distância euclidiana
similarity = SquareRoot ((A_user - A_teacher30) ^ 2 + (Length_User - Length_Teacher) ^ 2)
fornece a medida de similaridade. Você também pode usar os métodos mencionados acima com base no problema e nos recursos.
fonte