JACCARD_DISTANCE

JACCARD_DISTANCE(vector1, vector2);

功能描述

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

参数说明

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

返回结果

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

案例

  • 计算 vector<tinyint> 类型的两个向量之间的 Jaccard 距离
SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y), VECTOR(1y, 1y, 0y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.6666666   |
+-------------+
  • 计算更长的 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         |
+-------------+

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