File size: 1,054 Bytes
9ddee9f
 
c92b736
 
 
9ddee9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def interm_scores(grdt_sr:list, pred_sr:list):
    ## this function calculates 
## • Quantity score
## • Quantity rate score
## • Timing score
    #print(grdt_sr, pred_sr)
    lgrdt  = len(grdt_sr)
    assert lgrdt == len(pred_sr)
    cnt_01match = 0
    grdt_value = 0
    pred_value = 0
    cnt_grdt1 = 0
    cnt_pred1 = 0
    for i in range(lgrdt):
        
        if (grdt_sr[i]==0 and pred_sr[i]==0) or (grdt_sr[i]> 0 and pred_sr[i]>0):
            cnt_01match += 1
        
        cnt_grdt1 += 1 if grdt_sr[i]>0 else 0
        cnt_pred1 += 1 if pred_sr[i]>0 else 0
        grdt_value += grdt_sr[i]
        pred_value += pred_sr[i]
    #print("Calculating:\nQuantity score, Quantity rate score, Timing score")
    if cnt_grdt1 == 0 and cnt_pred1 == 0: # this indicate grdt_value=pred_value=0
        return 1.0, 1.0, 1.0*cnt_01match / lgrdt
    else:
        return 1.0*min(cnt_grdt1, cnt_pred1)/max(cnt_grdt1, cnt_pred1),\
               1.0*min(grdt_value, pred_value)/max(grdt_value, pred_value),\
               1.0*cnt_01match / lgrdt