カテゴリ:

集計関数 (類似度推定)、 ウィンドウ関数

APPROXIMATE_JACCARD_INDEX

MinHash 状態に基づいて、入力の類似度(Jaccardインデックス)の推定値を返します。Jaccardインデックスおよび関連する関数 MINHASH の詳細については、 2つ以上のセットの類似性の推定 をご参照ください。

APPROXIMATE_SIMILARITY のエイリアス

構文

APPROXIMATE_JACCARD_INDEX( [ DISTINCT ] <expr> [ , ... ] )

APPROXIMATE_JACCARD_INDEX(*)

引数

式は、 MINHASH 関数の呼び出しによって返される1つ以上の MinHash 状態でなければなりません。つまり、式は MinHash 状態情報である必要があり、おおよその類似性が必要な列または式ではありません。(以下の例はこれを明確にするのに役立ちます)

MinHash 状態の詳細については、 2つ以上のセットの類似性の推定 をご参照ください。

戻り値

0.0~1.0(この値を含む)の間の浮動小数点数。1.0はセットが同一であることを示し、0.0はセットにオーバーラップがないことを示します。

使用上の注意

  • DISTINCT を引数として含めることができますが、効果はありません。

  • 入力 MinHash 状態には、等しい長さの MinHash 配列が必要です。

  • 入力 MinHash 状態の配列の長さは、近似値の品質の指標です。

    関数 MINHASH で使用される k の値が大きいほど、近似値は良くなります。ただし、この値は、類似性を推定するための計算時間に線形の影響を及ぼします。

USE SCHEMA snowflake_sample_data.tpch_sf1;

SELECT APPROXIMATE_JACCARD_INDEX(mh) FROM
    (
      (SELECT MINHASH(100, C5) mh FROM orders WHERE c2 <= 50000)
         UNION
      (SELECT MINHASH(100, C5) mh FROM orders WHERE C2 > 50000)
    );

+-------------------------------+
| APPROXIMATE_JACCARD_INDEX(MH) |
|-------------------------------|
|                          0.97 |
+-------------------------------+