- カテゴリ:
VECTOR_L1_DISTANCE¶
2つの ベクトル 間のL1距離を計算します。
L1距離は、タクシー距離やマンハッタン距離とも呼ばれ、ベクトル空間における2点間の距離を表す尺度です。距離は、ベクトル要素の差の絶対値の合計を取ることによって計算されます。結果はゼロ以上の値です。距離がゼロの場合、ベクトルは同一です。距離が大きいほど、ベクトルは離れています。
- こちらもご参照ください。
VECTOR_INNER_PRODUCT、 VECTOR_L2_DISTANCE、 VECTOR_COSINE_SIMILARITY、 ベクトル埋め込み
構文¶
VECTOR_L1_DISTANCE( <vector>, <vector> )
引数¶
vector
距離を計算する元の VECTOR 値。
vector
距離を計算する先の VECTOR の値。
戻り値¶
2つの入力ベクトル間のL1距離を FLOAT 値で返します。
使用上の注意¶
ベクトル比較関数の計算最適化により、浮動小数点演算誤差が通常よりわずかに大きくなることがあります(例: 約1e-4)。
例¶
この例では、 VECTOR_L1_DISTANCE 関数を使用して、テーブルのどのベクトルが列 a
と 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 |
+--------------+