Catégories :

Fonctions de similarité vectorielle

VECTOR_L1_DISTANCE

Calcule la distance L1 entre deux vecteurs.

La distance L1, également connue sous le nom Taxi-distance (ou Distance de Manhattan), est une mesure de la distance entre deux points dans un espace vectoriel. La distance est calculée en prenant la somme de la valeur absolue des différences des éléments vectoriels. Le résultat est une valeur égale ou supérieure à zéro. Si la distance est zéro, les vecteurs sont identiques. Plus la distance est importante, plus les vecteurs sont éloignés l’un de l’autre.

Voir aussi :

VECTOR_INNER_PRODUCT, VECTOR_L2_DISTANCE, VECTOR_COSINE_SIMILARITY, Intégrations vectorielles

Syntaxe

VECTOR_L1_DISTANCE( <vector>, <vector> )
Copy

Arguments

vector

Valeur VECTOR à partir de laquelle calculer la distance.

vector

Valeur VECTOR vers laquelle calculer la distance.

Renvoie

Renvoie la distance L1 entre les deux vecteurs d’entrée sous forme de valeur FLOAT.

Notes sur l’utilisation

  • En raison d’optimisations de calcul des fonctions de comparaison de vecteurs, les erreurs en virgule flottante peuvent être légèrement plus importantes que d’habitude (par exemple, environ 1e-4).

Exemples

Cet exemple utilise la fonction VECTOR_L1_DISTANCE pour déterminer quels vecteurs de la table sont les plus proches les uns des autres entre les colonnes a et 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 |
+--------------+