2016-01-26 51 views
0

我正在爲一個門票評分系統工作,每張門票可能有多達4種不同的分數。我想要做的是將這四個分數結合在一個最終得分中,並優先處理這些門票。我也想給4分中的每一個分配一個權重。該分數的細節如下所列:需要一個加權評分算法來結合不同比例的得分

得分:1-5的規模,所需的相對重量:2

分數B:1-4的規模,所需的相對重量:3

曲名:1-10級,所需的相對重量:2

分數d:1-5的規模,所需的相對重量:1

一些要求:

(1)每個ticke t可能帶有任意數量的分數,所以有時候我們都有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} 

可設定的默認分數。

總體思路是根據四個分數排列門票。

回答

2

定義每個分數的初始相對權重W

轉換每個初始分數S從它的初始規模A到上通用的規模B通用得分S'從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,那麼您將擁有一個正常的權重系統,這並不會使分數更大。

+0

嘿,發現這個答案非常有幫助。但是,您能否提供一些背後原因的直覺?非常感謝,謝謝。 – Krishnaa