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 |
+-------------+
SELECT JACCARD_DISTANCE(VECTOR(1y, 0y, 1y, 0y), VECTOR(1y, 0y, 0y, 1y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.6666666 |
+-------------+
SELECT JACCARD_DISTANCE(VECTOR(1y, 1y, 0y), VECTOR(1y, 1y, 0y)) as jaccard_dis;
+-------------+
| jaccard_dis |
+-------------+
| 0.0 |
+-------------+