JACCARD_DISTANCE

JACCARD_DISTANCE(vector1, vector2);

功能描述

计算两个向量之间的雅卡德距离(Jaccard Distance)。雅卡德距离定义为 1 - 雅卡德相似系数,用于衡量两个集合的差异程度。对于二进制向量,Jaccard 距离 = 1 - |A∩B| / |A∪B|,其中 A 和 B 分别表示两个向量中非零元素的集合。

参数说明

  • vector1
    vector1
    :第一个向量,支持的类型
    vector
    vector
    <tinyint>
  • vector2
    vector2
    :第二个向量,支持的类型
    vector
    vector
    <tinyint>

返回结果

返回一个

double
double
类型的结果,取值范围为 [0, 1]。其中 0 表示两个向量完全相同,1 表示完全不同。

案例

  • 计算
    vector
    vector
    <tinyint> 类型的两个向量之间的 Jaccard 距离

SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y), VECTOR(1y, 1y, 0y)) as jaccard_dis; +-------------+ | jaccard_dis | +-------------+ | 0.6666666 | +-------------+

  • 计算更长的
    tinyint
    tinyint
    向量之间的 Jaccard 距离

SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y, 0y), VECTOR(1y, 0y, 0y, 1y)) as jaccard_dis; +-------------+ | jaccard_dis | +-------------+ | 0.6666666 | +-------------+

  • 计算相同向量的 Jaccard 距离(结果为 0)

SELECT JACCARD_DISTANCE(VECTOR(1y, 1y, 0y), VECTOR(1y, 1y, 0y)) as jaccard_dis; +-------------+ | jaccard_dis | +-------------+ | 0.0 | +-------------+

联系我们
预约咨询
微信咨询
电话咨询