- Categorias:
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> )
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;
+--------------+
| 3.300000191 |
|--------------|
| 11.800000191 |
+--------------+