Ejemplo n.º 1
0
def AUCROC_weighting(gbc):
    N = math.fsum([len(samples) for _, samples in gbc.iteritems()])
    N2 = N * N
    waucs = [(len(samples1) * len(samples2) / N2, calc_auc(_ROC(samples1 + samples2, cls1)))
        for (cls1, samples1), (cls2, samples2) in combinations(gbc.items(), 2)]
    wsum = math.fsum((x[0] for x in waucs))
    # TODO can wsum be 0? what if?
    return math.fsum(map(lambda x: x[0] * x[1], waucs)) / wsum
Ejemplo n.º 2
0
 def test_auc(self):
     test_data = [
         ([(0, 0), (1, 2), (2, 0)], 2.),
         ([(0, 1), (1, 1)], 1),
         ([(0., 0.5), (1, 2), (2, 2.)], 1.25 + 2.)
         ]
     for curve, expected_auc in test_data:
         self.assertEqual(expected_auc, calc_auc(curve))
Ejemplo n.º 3
0
def AUCROC_weighting(gbc):
    N = math.fsum([len(samples) for _, samples in gbc.iteritems()])
    N2 = N * N
    waucs = [(len(samples1) * len(samples2) / N2,
              calc_auc(_ROC(samples1 + samples2, cls1)))
             for (cls1, samples1), (cls2,
                                    samples2) in combinations(gbc.items(), 2)]
    wsum = math.fsum((x[0] for x in waucs))
    # TODO can wsum be 0? what if?
    return math.fsum(map(lambda x: x[0] * x[1], waucs)) / wsum
Ejemplo n.º 4
0
def AUCROC_nonweighting(gbc):
    return avg([calc_auc(_ROC(samples1 + samples2, cls1))
        for (cls1, samples1), (cls2, samples2) in combinations(gbc.items(), 2)])
Ejemplo n.º 5
0
def AUCROC_nonweighting(gbc):
    return avg([
        calc_auc(_ROC(samples1 + samples2, cls1))
        for (cls1, samples1), (cls2, samples2) in combinations(gbc.items(), 2)
    ])
Ejemplo n.º 6
0
 def test_auc(self):
     test_data = [([(0, 0), (1, 2), (2, 0)], 2.), ([(0, 1), (1, 1)], 1),
                  ([(0., 0.5), (1, 2), (2, 2.)], 1.25 + 2.)]
     for curve, expected_auc in test_data:
         self.assertEqual(expected_auc, calc_auc(curve))