Exemple #1
0
 def hp_categorical(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     size = memo[node.arg['size']]
     if size == 0:
         return []
     val1 = np.atleast_1d(val)
     p = p_orig = np.asarray(memo[node.arg['p']])
     if p.ndim == 2:
         if len(p) not in (1, len(val1)):
             print node
             print p
             print np.asarray(p).shape
         assert len(p) in (1, len(val1))
     else:
         assert p.ndim == 1
         p = p[np.newaxis, :]
     upper = memo[node.arg['upper']]
     if val1.size:
         counts = np.bincount(val1, minlength=upper) / float(val1.size)
         prior = self.shrinking(label)
     else:
         counts = np.zeros(upper)
         prior = 1.0
     new_p = (1 - prior) * counts + prior * p
     assert new_p.ndim == 2
     rval = categorical(p=new_p, rng=self.rng, size=size)
     if p_orig.ndim == 1:
         assert len(rval) == 1
         return rval[0]
     else:
         return rval
Exemple #2
0
 def hp_categorical(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     size = memo[node.arg['size']]
     if size == 0:
         return []
     val1 = np.atleast_1d(val)
     p = p_orig = np.asarray(memo[node.arg['p']])
     if p.ndim == 2:
         if len(p) not in (1, len(val1)):
             print node
             print p
             print np.asarray(p).shape
         assert len(p) in (1, len(val1))
     else:
         assert p.ndim == 1
         p = p[np.newaxis, :]
     upper = memo[node.arg['upper']]
     if val1.size:
         counts = np.bincount(val1, minlength=upper) / float(val1.size)
         prior = self.shrinking(label)
     else:
         counts = np.zeros(upper)
         prior = 1.0
     new_p = (1 - prior) * counts + prior * p
     assert new_p.ndim == 2
     rval = categorical(p=new_p, rng=self.rng, size=size)
     if p_orig.ndim == 1:
         assert len(rval) == 1
         return rval[0]
     else:
         return rval
Exemple #3
0
 def hp_categorical(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     p = p_orig = np.asarray(memo[node.arg['p']])
     if p.ndim == 2:
         assert len(p) == 1
         p = p[0]
     counts = np.zeros_like(p)
     counts[val] += 1
     prior = self.shrinking(label)
     new_p = (1 - prior) * counts + prior * p
     if p_orig.ndim == 2:
         rval = categorical(p=[new_p], rng=self.rng,
                            size=memo[node.arg['size']])
     else:
         rval = categorical(p=new_p, rng=self.rng,
                            size=memo[node.arg['size']])
     return rval
Exemple #4
0
 def hp_randint(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     upper = memo[node.arg['upper']]
     counts = np.zeros(upper)
     counts[val] += 1
     prior = self.shrinking(label)
     p = (1 - prior) * counts + prior * (1.0 / upper)
     rval = categorical(p=p, upper=upper, rng=self.rng,
                        size=memo[node.arg['size']])
     return rval
Exemple #5
0
 def hp_categorical(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     p = p_orig = np.asarray(memo[node.arg['p']])
     if p.ndim == 2:
         assert len(p) == 1
         p = p[0]
     counts = np.zeros_like(p)
     counts[val] += 1
     prior = self.shrinking(label)
     new_p = (1 - prior) * counts + prior * p
     if p_orig.ndim == 2:
         rval = categorical(p=[new_p],
                            rng=self.rng,
                            size=memo[node.arg['size']])
     else:
         rval = categorical(p=new_p,
                            rng=self.rng,
                            size=memo[node.arg['size']])
     return rval
Exemple #6
0
 def hp_randint(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     upper = memo[node.arg['upper']]
     counts = np.zeros(upper)
     counts[val] += 1
     prior = self.shrinking(label)
     p = (1 - prior) * counts + prior * (1.0 / upper)
     rval = categorical(p=p,
                        upper=upper,
                        rng=self.rng,
                        size=memo[node.arg['size']])
     return rval
Exemple #7
0
 def hp_randint(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     upper = memo[node.arg['upper']]
     val1 = np.atleast_1d(val)
     if val1.size:
         counts = np.bincount(val1, minlength=upper) / float(val1.size)
     else:
         counts = np.zeros(upper)
         prior = 1.0
     prior = self.shrinking(label)
     p = (1 - prior) * counts + prior * (1.0 / upper)
     rval = categorical(p=p, upper=upper, rng=self.rng,
                        size=memo[node.arg['size']])
     return rval
Exemple #8
0
 def hp_randint(self, memo, node, label, tid, val):
     """
     Parameters: See `hp_uniform`
     """
     upper = memo[node.arg['upper']]
     val1 = np.atleast_1d(val)
     if val1.size:
         counts = np.bincount(val1, minlength=upper) / float(val1.size)
     else:
         counts = np.zeros(upper)
         prior = 1.0
     prior = self.shrinking(label)
     p = (1 - prior) * counts + prior * (1.0 / upper)
     rval = categorical(p=p,
                        upper=upper,
                        rng=self.rng,
                        size=memo[node.arg['size']])
     return rval