Categorias:

Funções de similaridade vetorial

VECTOR_L1_DISTANCE

Calcula a distância L1 entre dois vetores.

A distância L1, também conhecida como distância Taxicab ou Manhattan, é uma medida da distância entre dois pontos em um espaço vetorial. A distância é calculada pela soma do valor absoluto das diferenças dos elementos do vetor. O resultado é um valor igual ou superior a zero. Se a distância for zero, os vetores serão idênticos. Quanto maior a distância, mais distantes os vetores estão.

Consulte também:

VECTOR_INNER_PRODUCT, VECTOR_L2_DISTANCE, VECTOR_COSINE_SIMILARITY, Incorporações de vetor

Sintaxe

VECTOR_L1_DISTANCE( <vector>, <vector> )
Copy

Argumentos

vector

O valor VECTOR para calcular a distância.

vector

O valor VECTOR para calcular a distância.

Retornos

Retorna a distância L1 entre os dois vetores de entrada como um valor FLOAT.

Notas de uso

  • Devido a otimizações computacionais nas funções de comparação de vetores, os erros de ponto flutuante podem ser um pouco maiores do que o normal (por exemplo, cerca de 1e-4).

Exemplos

Este exemplo usa a função VECTOR_L1_DISTANCE para determinar quais vetores da tabela estão mais próximos uns dos outros entre as colunas a e b:

CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT [1.1,2.2,3]::VECTOR(FLOAT,3), [1,1,1]::VECTOR(FLOAT,3);
INSERT INTO vectors SELECT [1,2.2,3]::VECTOR(FLOAT,3), [4,6,8]::VECTOR(FLOAT,3);

SELECT VECTOR_L1_DISTANCE(a, b) FROM vectors;
Copy
+--------------+
| 3.300000191  |
|--------------|
| 11.800000191 |
+--------------+