ClickHouse/docs/ja/sql-reference/functions/distance-functions.md
2024-11-18 11:58:58 +09:00

11 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/sql-reference/functions/distance-functions 55 距離

距離関数

L1Norm

ベクトルの絶対値の合計を計算します。

構文

L1Norm(vector)

別名: normL1.

引数

返される値

クエリ:

SELECT L1Norm((1, 2));

結果:

┌─L1Norm((1, 2))─┐
│              3 │
└────────────────┘

L2Norm

ベクトル値の平方和の平方根を計算します。

構文

L2Norm(vector)

別名: normL2.

引数

返される値

クエリ:

SELECT L2Norm((1, 2));

結果:

┌───L2Norm((1, 2))─┐
│ 2.23606797749979 │
└──────────────────┘

L2SquaredNorm

ベクトル値の平方和の平方根(L2Norm)の平方を計算します。

構文

L2SquaredNorm(vector)

別名: normL2Squared.

*引数

返される値

  • L2-ノルムの平方。Float

クエリ:

SELECT L2SquaredNorm((1, 2));

結果:

┌─L2SquaredNorm((1, 2))─┐
│                     5 │
└───────────────────────┘

LinfNorm

ベクトルの絶対値の最大値を計算します。

構文

LinfNorm(vector)

別名: normLinf.

引数

返される値

  • Linf-ノルムまたは絶対値の最大値。Float

クエリ:

SELECT LinfNorm((1, -2));

結果:

┌─LinfNorm((1, -2))─┐
│                 2 │
└───────────────────┘

LpNorm

ベクトル内の絶対値の合計を p 乗したものの p 乗根を計算します。

構文

LpNorm(vector, p)

別名: normLp.

引数

  • vectorTuple または Array
  • p — 指数。可能な値: [1; inf) の範囲の実数。UInt または Float

返される値

クエリ:

SELECT LpNorm((1, -2), 2);

結果:

┌─LpNorm((1, -2), 2)─┐
│   2.23606797749979 │
└────────────────────┘

L1Distance

2点間の距離を L1 空間1-ノルム、タクシー幾何学距離)で計算します。

構文

L1Distance(vector1, vector2)

別名: distanceL1.

引数

  • vector1 — 第1ベクトル。Tuple または Array
  • vector2 — 第2ベクトル。Tuple または Array

返される値

  • 1-ノルム距離。Float

クエリ:

SELECT L1Distance((1, 2), (2, 3));

結果:

┌─L1Distance((1, 2), (2, 3))─┐
│                          2 │
└────────────────────────────┘

L2Distance

2点間の距離をユークリッド空間ユークリッド距離)で計算します。

構文

L2Distance(vector1, vector2)

別名: distanceL2.

引数

  • vector1 — 第1ベクトル。Tuple または Array
  • vector2 — 第2ベクトル。Tuple または Array

返される値

  • 2-ノルム距離。Float

クエリ:

SELECT L2Distance((1, 2), (2, 3));

結果:

┌─L2Distance((1, 2), (2, 3))─┐
│         1.4142135623730951 │
└────────────────────────────┘

L2SquaredDistance

2つのベクトルの対応する要素間の差の平方和を計算します。

構文

L2SquaredDistance(vector1, vector2)

別名: distanceL2Squared.

引数

  • vector1 — 第1ベクトル。Tuple または Array
  • vector2 — 第2ベクトル。Tuple または Array

返される値

  • 2つのベクトルの対応する要素間の差の平方和。Float

クエリ:

SELECT L2SquaredDistance([1, 2, 3], [0, 0, 0])

結果:

┌─L2SquaredDistance([1, 2, 3], [0, 0, 0])─┐
│                                      14 │
└─────────────────────────────────────────┘

LinfDistance

2点間の距離を L_{inf} 空間([最大ノルム](https://en.wikipedia.org/wiki/Norm_(mathematics)#Maximum_norm_(special_case_of:_infinity_norm,_uniform_norm,_or_supremum_norm)))で計算します

構文

LinfDistance(vector1, vector2)

別名: distanceLinf.

引数

  • vector1 — 第1ベクトル。Tuple または Array
  • vector2 — 第2ベクトル。Tuple または Array

返される値

  • 無限ノルム距離。Float

クエリ:

SELECT LinfDistance((1, 2), (2, 3));

結果:

┌─LinfDistance((1, 2), (2, 3))─┐
│                            1 │
└──────────────────────────────┘

LpDistance

2点間の距離を Lp 空間(p-ノルム距離)で計算します。

構文

LpDistance(vector1, vector2, p)

別名: distanceLp.

引数

  • vector1 — 第1ベクトル。Tuple または Array
  • vector2 — 第2ベクトル。Tuple または Array
  • p — 指数。可能な値: [1;inf) の範囲の任意の数。UInt または Float

返される値

  • p-ノルム距離。Float

クエリ:

SELECT LpDistance((1, 2), (2, 3), 3);

結果:

┌─LpDistance((1, 2), (2, 3), 3)─┐
│            1.2599210498948732 │
└───────────────────────────────┘

L1Normalize

指定されたベクトルの単位ベクトルを L1 空間(タクシー幾何学)で計算します。

構文

L1Normalize(tuple)

別名: normalizeL1.

引数

返される値

クエリ:

SELECT L1Normalize((1, 2));

結果:

┌─L1Normalize((1, 2))─────────────────────┐
│ (0.3333333333333333,0.6666666666666666) │
└─────────────────────────────────────────┘

L2Normalize

指定されたベクトルの単位ベクトルをユークリッド空間(ユークリッド距離を使用)で計算します。

構文

L2Normalize(tuple)

別名: normalizeL1.

引数

返される値

クエリ:

SELECT L2Normalize((3, 4));

結果:

┌─L2Normalize((3, 4))─┐
│ (0.6,0.8)           │
└─────────────────────┘

LinfNormalize

指定されたベクトルの単位ベクトルを L_{inf} 空間([最大ノルム](https://en.wikipedia.org/wiki/Norm_(mathematics)#Maximum_norm_(special_case_of:_infinity_norm,_uniform_norm,_or_supremum_norm)を使用)で計算します

構文

LinfNormalize(tuple)

別名: normalizeLinf .

引数

返される値

クエリ:

SELECT LinfNormalize((3, 4));

結果:

┌─LinfNormalize((3, 4))─┐
│ (0.75,1)              │
└───────────────────────┘

LpNormalize

指定されたベクトルの単位ベクトルを Lp 空間(p-ノルムを使用)で計算します。

構文

LpNormalize(tuple, p)

別名: normalizeLp .

引数

  • tupleTuple
  • p — 指数。可能な値: [1;inf) の範囲の任意の数。UInt または Float

返される値

クエリ:

SELECT LpNormalize((3, 4),5);

結果:

┌─LpNormalize((3, 4), 5)──────────────────┐
│ (0.7187302630182624,0.9583070173576831) │
└─────────────────────────────────────────┘

cosineDistance

2つのベクトル間のコサイン距離を計算しますタプルの値は座標です。返される値が小さいほど、ベクトルは類似しています。

構文

cosineDistance(vector1, vector2)

引数

  • vector1 — 第1タプル。Tuple または Array
  • vector2 — 第2タプル。Tuple または Array

返される値

  • 2つのベクトル間の角度の余弦を1から減じたもの。Float

クエリ:

SELECT cosineDistance((1, 2), (2, 3));

結果:

┌─cosineDistance((1, 2), (2, 3))─┐
│           0.007722123286332261 │
└────────────────────────────────┘