Esempio n. 1
0
 def test_random_walk(self):
     nsamples = 10
     weights_hit = np.linspace(10, 1, nsamples)
     weights_miss = weights_hit.copy()
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)
     membership = np.ones(nsamples, dtype=INT_DTYPE)
     # test all combinations of membership
     # with perfect enrichment (all hits before misses)
     for i in xrange(1, nsamples):
         membership[:] = 1
         membership[i:] = 0
         es_val, es_rank, es_run = \
             kernel.random_walk(weights_miss, weights_hit, membership,
                                ranks, perm)
         self.assertTrue(es_val == 1.0)
         self.assertTrue(es_rank == (i - 1))
         self.assertTrue(es_run[es_rank] == 1.0)
     # test all combinations of membership
     # with perfect negative enrichment (all misses before hits)
     for i in xrange(nsamples - 1, 0, -1):
         membership[:] = 1
         membership[:i] = 0
         es_val, es_rank, es_run = \
             kernel.random_walk(weights_miss, weights_hit, membership,
                                ranks, perm)
         self.assertTrue(es_val == -1.0)
         self.assertTrue(es_rank == (i - 1))
         self.assertTrue(es_run[es_rank] == -1.0)
Esempio n. 2
0
 def test_random_walk(self):
     nsamples = 10
     weights_hit = np.linspace(10, 1, nsamples)
     weights_miss = weights_hit.copy()
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)
     membership = np.ones(nsamples, dtype=INT_DTYPE)
     # test all combinations of membership
     # with perfect enrichment (all hits before misses)
     for i in xrange(1,nsamples):
         membership[:] = 1
         membership[i:] = 0
         es_val, es_rank, es_run = \
             kernel.random_walk(weights_miss, weights_hit, membership, 
                                ranks, perm)
         self.assertTrue(es_val == 1.0)
         self.assertTrue(es_rank == (i-1))
         self.assertTrue(es_run[es_rank] == 1.0)
     # test all combinations of membership
     # with perfect negative enrichment (all misses before hits)
     for i in xrange(nsamples-1,0,-1):
         membership[:] = 1
         membership[:i] = 0
         es_val, es_rank, es_run = \
             kernel.random_walk(weights_miss, weights_hit, membership, 
                                ranks, perm)
         self.assertTrue(es_val == -1.0)
         self.assertTrue(es_rank == (i-1))
         self.assertTrue(es_run[es_rank] == -1.0)
Esempio n. 3
0
 def test_random_walk_boundary_cases(self):
     nsamples = 100
     # test all zeros
     weights_hit = np.zeros(nsamples, dtype=np.float)
     weights_miss = np.zeros(nsamples, dtype=np.float)
     membership = np.zeros(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership,
                            ranks, perm)
     self.assertTrue(es_val == 0.0)
     self.assertTrue(es_rank == 0.0)
     self.assertTrue(es_run.shape[0] == nsamples)
     # nonzero weights but empty membership
     weights_hit = np.linspace(1, 10, nsamples)
     weights_miss = weights_hit.copy()
     membership = np.zeros(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership,
                            ranks, perm)
     self.assertTrue(es_val == -1.0)
     self.assertTrue(es_rank == (nsamples - 1))
     self.assertTrue(es_run.shape[0] == nsamples)
     self.assertTrue(np.all(es_run == -1.0))
     # nonzero weights but full membership
     weights_hit = np.linspace(1, 10, nsamples)
     weights_miss = weights_hit.copy()
     membership = np.ones(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership,
                            ranks, perm)
     self.assertTrue(es_val == 1.0)
     self.assertTrue(es_rank == 0)
     self.assertTrue(es_run.shape[0] == nsamples)
     self.assertTrue(np.all(es_run == 1.0))
Esempio n. 4
0
 def test_random_walk_boundary_cases(self):
     nsamples = 100
     # test all zeros
     weights_hit = np.zeros(nsamples, dtype=np.float)
     weights_miss = np.zeros(nsamples, dtype=np.float)
     membership = np.zeros(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)        
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership, 
                            ranks, perm)        
     self.assertTrue(es_val == 0.0)
     self.assertTrue(es_rank == 0.0)
     self.assertTrue(es_run.shape[0] == nsamples)
     # nonzero weights but empty membership
     weights_hit = np.linspace(1, 10, nsamples)
     weights_miss = weights_hit.copy()
     membership = np.zeros(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)        
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership, 
                            ranks, perm)
     self.assertTrue(es_val == -1.0)
     self.assertTrue(es_rank == (nsamples-1))
     self.assertTrue(es_run.shape[0] == nsamples)
     self.assertTrue(np.all(es_run == -1.0))
     # nonzero weights but full membership
     weights_hit = np.linspace(1, 10, nsamples)
     weights_miss = weights_hit.copy()
     membership = np.ones(nsamples, dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(nsamples, dtype=np.int)        
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership, 
                            ranks, perm)
     self.assertTrue(es_val == 1.0)
     self.assertTrue(es_rank == 0)
     self.assertTrue(es_run.shape[0] == nsamples)
     self.assertTrue(np.all(es_run == 1.0))
Esempio n. 5
0
 def test_random_walk_empty(self):
     '''
     test trying to run random walk with an empty array
     '''
     weights_hit = np.array([], dtype=np.float)
     weights_miss = np.array([], dtype=np.float)
     membership = np.empty((0, ), dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(0)
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership, ranks, perm)
     self.assertTrue(es_val == 0)
     self.assertTrue(es_rank == 0)
     self.assertTrue(np.all(es_run == 0.0))
Esempio n. 6
0
 def test_random_walk_empty(self):
     '''
     test trying to run random walk with an empty array
     '''
     weights_hit = np.array([], dtype=np.float)
     weights_miss = np.array([], dtype=np.float)
     membership = np.empty((0,), dtype=INT_DTYPE)
     ranks = np.argsort(weights_hit)[::-1]
     perm = np.arange(0)
     es_val, es_rank, es_run = \
         kernel.random_walk(weights_miss, weights_hit, membership, ranks, perm)
     self.assertTrue(es_val == 0)
     self.assertTrue(es_rank == 0)
     self.assertTrue(np.all(es_run == 0.0))