Exemple #1
0
 def load(filename, path='', sep=',', which=('spec', 'sens')):
     with open(path + filename) as infile:
         X, Y = unzip2([line.strip().split(sep) for line in infile])
         X, Y = [float(x) for x in X], [float(y) for y in Y]
         if which == ('spec', 'sens'): X, Y = ss2phidelta(X, Y)
         # print "LOAD X, Y = ", X, Y
         return X, Y
Exemple #2
0
def make_grid(size=50):
  "Evaluate a phidelta grid --virtually, a square grid (testing only)"
  xlim = ylim = np.linspace(0.,+1.,size)
  grid = np.zeros ( shape=(size*size,), dtype = tuple )
  for k, (spec, sens) in enumerate(product(xlim,ylim)): grid[k] = (spec,sens)
  phi, delta = phidelta_std(*unzip2(grid))
  return phi, delta
Exemple #3
0
 def fill(self,ax,color='lightgrey'):
   "Fill the background of a phidelta diagram"
   X, Y = unzip2(multiple_get(self.borders,self.border_keys))
   ax.fill ( X + X[:1], Y + Y[:1], color=color, zorder=0 )
Exemple #4
0
 def draw_borders(self, ax):
   "Draws borders of a rhombus"
   X, Y = unzip2(multiple_get(self.borders,self.border_keys))
   ax.plot ( X + X[:1], Y + Y[:1], color='r', zorder=1 )
Exemple #5
0
  
  points = [ (0.95,0.95), (0.95,0.05), (0.05,0.95), (0.05,0.05) ]
  
  colors = [ 0., 0.3, 0.6, 0.9 ]
  
  #for ratio in [ 1., 3., 6., 1/6.]:
  for ratio in [ 1., 2. ]:
    
    # model = phidelta_model(ratio=ratio, intervals = 100, _eval = ('grid'))
  
    view = phidelta_view(ratio=ratio, labels = (r'$\varphi_{b}$',r'$\delta_{b}$', 'Entropy'))

    view('axes', 'borders', 'crossings', 'fill')
    #view('axes', 'borders', 'crossings')
    #view('axes', 'borders', 'fill')
    view.projection = '2d'
  
    phi, delta = unzip2(eval_coords(points,ratio))
  
    view.scatter2D(phi,delta,colors=colors)
  
  #ax = view.plot()
  
  #S, D = model.get_iso_recall('specificity')
  #S, D = model.get_iso_precision('precision')
  #S, D = model.get_iso_precision('neg predictive value')
  
  #S, D = model.get_iso_accuracy('accuracy')
  #view.draw_lines(S,D)

  
Exemple #6
0
    from utils import runCtrl

    run = runCtrl() << {
        'file': True,
        'four_points': False
    }  # ONE should be true ...

    def load(filename, path='', sep=',', which=('spec', 'sens')):
        with open(path + filename) as infile:
            X, Y = unzip2([line.strip().split(sep) for line in infile])
            X, Y = [float(x) for x in X], [float(y) for y in Y]
            if which == ('spec', 'sens'): X, Y = ss2phidelta(X, Y)
            # print "LOAD X, Y = ", X, Y
            return X, Y

    if run['file']:
        phi, delta = load('test.csv')

    elif run['four_points']:
        spec, sens = unzip2([(0.95, 0.95), (0.95, 0.05), (0.05, 0.95),
                             (0.05, 0.05)])
        phi, delta = ss2phidelta(spec, sens)
        # phi, delta = phi[1:2], delta[1:2]

    # Running the slider

    view = phidelta_view(ratio=1., labels=('$\phi$', '$\delta$', ''))
    view('borders')
    slider = slider2D(view=view, points=(phi, delta))
    slider.show()
Exemple #7
0
 def fill(self, size=160):
     "Fill the background of a phidelta diagram"
     X, Y = unzip2(multiple_get(self.borders, self.border_keys))
     self.axes.fill(X + X[:1], Y + Y[:1], color='lightgrey', zorder=0)
Exemple #8
0
 def draw_borders(self):
     "Draw borders of a phidelta diagram"
     X, Y = unzip2(multiple_get(self.borders, self.border_keys))
     self.axes.plot(X + X[:1], Y + Y[:1], color='r', zorder=1)