JACCARD_DISTANCE

JACCARD_DISTANCE(vector1, vector2);

功能描述

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

参数说明

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

返回结果

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

案例

  • 计算vector<tinyint>类型的两个向量之间的雅卡德距离
SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y), VECTOR(1y, 1y, 0y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.6666666   |
+-------------+
  • 计算更长的tinyint向量之间的雅卡德距离
SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y, 0y), VECTOR(1y, 0y, 0y, 1y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.6666666   |
+-------------+
  • 计算相同向量的雅卡德距离(结果为0)
SELECT JACCARD_DISTANCE(VECTOR(1y, 1y, 0y), VECTOR(1y, 1y, 0y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.0         |
+-------------+

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