我有 2 个提供不同结果的排序算法(我按相关性对信息进行排序)。结果,两种方式我都以不同的顺序获得相同的物品。我知道,第一个算法比第二个提供更好的结果。我想获得相对值(从 0 到 1),这意味着“array2 的前 N 个值是 array1 的前 N 个值的 0.73 质量”(我比较第一个元素,因为用户在没有任何操作的情况下看到它)。首先想到的是使用array1和array2中位置之间的差异之和。例如:
数组1:1 2 3 4 | 5 6 7 8 9
数组2:8 6 2 3 | 7 4 1 5 9 - array1 中的位置
数组2*:5 5 2 3 | (大于 4 替换为 5 以获取 diapasone 0..1 中的相对值)
我想比较前 4 个元素:
S = 1 + 2 + 3 + 4 - 标准具之和,最大偏差
D = |1 - 5| + |2 - 5| + |3 - 2| + |4 - 3| = 9 - 这是绝对偏差
为了计算相对质量,我使用下一个公式:(S - D)/S = 0.1。
有没有标准的算法?这种算法有什么缺点?