需要加权评分算法来合并不同比例的分数

时间:2016-01-26 22:35:00

标签: algorithm

我正在制作门票评分系统,每张门票最多可能有4种不同的分数。我想要做的是将最终得分中的这四个分数结合起来并确定优先顺序。我还想为4分中的每一分配一个权重。 4个分数的详细信息如下:

分数A:1-5分,所需的相对重量:2

分数B:1-4比例,期望的相对重量:3

得分C:1-10比例,期望的相对重量:2

分数D:1-5比例,期望的相对重量:1

一些要求:

(1)每张票可能带有任意数量的分数,所以有时候我们都有4分,有时我们没有分数(需要默认最终分数)。

(2)如果门票得到多个来源的高分,最终得分应该更高,反之亦然。

(3)权重较高的分数在决定最终分数时起着更大的作用

(4)最终得分应为1-4分。

我想知道是否有任何解决此类问题的算法?谢谢你。

所需的输入和输出示例:

(1) Input:   {A:N/A, B:4, C:9, D:N/A}
Output:  {Final: 4}  

因为两个分数都是高分

(2) Input:   {A:3, B:N\A, C:8, D:1}
Output:  {Final:3}   

虽然得分D很小,但它的重量很小,所以我们仍然得到相对较高的最终得分。

(3) Input:   {A:N\A, B:N\A, C:N\A, D:N\A}
Output:  {Final:2}

可论证的默认分数。

总的想法是根据四个分数对门票进行排名。

1 个答案:

答案 0 :(得分:4)

为每个分数定义初始相对权重W

将每个初始分数S从其初始分数A转换为通用分数S',通用分数B从minB到maxB

<code>S'=(S-minA)/(maxA-minA)*(maxB-minB)+minB</code>

如果缺少分数,请为其指定默认值

http://latex.codecogs.com/gif.latex?%5Cinline%20%5Chuge%20RankingScore%3D%5Csum_%7Bi%3D1%7D%5En%5Cleft%20%28%5Cfrac%7B%5Csqrt%5Ba%5D%7BS_i%5Ea%20+%5Csum_%7Bj%3D1%7D%5En%20%5Cleft%20%28S_j%5Ea%5Cright%20%29%7D%7D%7Bn+1%7D*%5Cfrac%7B%5Csqrt%5Bb%5D%7BW_i%5Eb+%5Csum_%7Bj%3D1%7D%5En%20%5Cleft%20%28W_j%5Eb%5Cright%20%29%7D%7D%7Bn+1%7D%20%5Cright%20%29

使用新S

计算最终得分

http://latex.codecogs.com/gif.latex?%5Cinline%20%5Chuge%20RankingScore%3D%5Csum_%7Bi%3D1%7D%5En%5Cleft%20%28%5Cfrac%7B%5Csqrt%5Ba%5D%7BS_i%5Ea%20+%5Csum_%7Bj%3D1%7D%5En%20%5Cleft%20%28S_j%5Ea%5Cright%20%29%7D%7D%7Bn+1%7D*%5Cfrac%7B%5Csqrt%5Bb%5D%7BW_i%5Eb+%5Csum_%7Bj%3D1%7D%5En%20%5Cleft%20%28W_j%5Eb%5Cright%20%29%7D%7D%7Bn+1%7D%20%5Cright%20%29

a和b是分数和体重的权重。

如果你做得很大,那么只有真正最大的分数才能发挥作用,如果你让b大,那么只有真正最大的分量才会发挥作用。

在[1; 2]之间有a和b不应该太极端。如果a或b为1,您将拥有一个正常的加权系统,这不会增加更多的分数。