[d2c46b]: / model / metrics.py

Download this file

19 lines (15 with data), 561 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from numpy.random import seed
seed(1)
from tensorflow import set_random_seed
set_random_seed(2020)
import numpy as np
def gini(actual, pred):
assert (len(actual) == len(pred))
all = np.asarray(np.c_[actual, pred, np.arange(len(actual))], dtype=np.float)
all = all[np.lexsort((all[:, 2], -1 * all[:, 1]))]
totalLosses = all[:, 0].sum()
giniSum = all[:, 0].cumsum().sum() / totalLosses
giniSum -= (len(actual) + 1) / 2.
return giniSum / len(actual)
def gini_norm(actual, pred):
return gini(actual, pred) / gini(actual, actual)