コード例 #1
0
ファイル: dragonfly.py プロジェクト: RemiLehe/dragonfly
def create_domain(parameters):
    """ Create domain object based on the bounds and kernel type. """
    list_of_domains = []
    euclidean_bounds = []
    integral_bounds = []
    discrete_bounds = []
    for param in parameters:
        bounds = [param['min'], param['max']]
        if param['type'] == 'float' and param['kernel'] == '':
            euclidean_bounds.append(bounds)
        elif param['type'] == 'float' and param['kernel'] != '':
            list_of_domains.append(domains.EuclideanDomain([bounds]))
        elif param['type'] == 'int' and param['kernel'] == '':
            integral_bounds.append(bounds)
        elif param['type'] == 'int' and param['kernel'] != '':
            list_of_domains.append(domains.IntegralDomain([bounds]))
        elif param['type'] == 'discrete' and param['kernel'] == '':
            discrete_bounds.append(bounds)
        elif param['type'] == 'discrete' and param['kernel'] != '':
            list_of_domains.append(domains.DiscreteDomain([bounds]))

    if len(euclidean_bounds) != 0:
        list_of_domains.append(domains.EuclideanDomain(euclidean_bounds))
    if len(integral_bounds) != 0:
        list_of_domains.append(domains.IntegralDomain(integral_bounds))
    if len(discrete_bounds) != 0:
        list_of_domains.append(domains.DiscreteDomain(discrete_bounds))

    if len(list_of_domains) == 1:
        return list_of_domains[0]

    domain = domains.CartesianProductDomain(list_of_domains)
    return domain
コード例 #2
0
 def _child_set_up(self):
     """ Child set up. """
     self.domain_obj = domains.IntegralDomain([[0, 10], [-10, 100],
                                               [45, 78.4]])
     self.points = [[9, 56, 78], [5, 0, 68], [0, -1, 70]]
     self.non_points = [[11, 0, 67], [5.6, 11, 58], [4, 3.0, 70],
                        [9, 56, 67, 9]]
コード例 #3
0
 def __init__(self, n, p):
     """ Constructor. """
     super(Binomial, self).__init__()
     self.n = n
     self.p = float(p)
     self.dim = 1
     self.domain = domains.IntegralDomain(np.array([0, self.n]))
コード例 #4
0
 def __init__(self, lower, upper):
     """ Constructor. """
     super(DiscreteUniform, self).__init__()
     self.lower = np.floor(lower)
     self.upper = np.floor(upper)
     self.dim = 1
     self.domain = domains.IntegralDomain(np.array([self.lower,
                                                    self.upper]))
コード例 #5
0
 def __init__(self, categories, p):
     """ Constructor """
     super(Categorical, self).__init__()
     self.cat = list(categories)
     self.k = len(categories)
     self.p = np.array(p)
     self.dim = 1
     self.domain = domains.IntegralDomain(np.array([1, self.k]))
コード例 #6
0
 def _child_set_up(self):
     """ Child set up. """
     list_of_domains = [
         domains.EuclideanDomain([[0, 2.3], [3.4, 8.9], [0.12, 1.0]]),
         domains.IntegralDomain([[0, 10], [-10, 100], [45, 78.4]]),
         domains.ProdDiscreteDomain([['abc', 5, 6.5], [None, float]]),
         domains.DiscreteDomain(['abc', 5, 6.5, int, 'k']),
     ]
     self.domain_obj = domains.CartesianProductDomain(list_of_domains)
     self.points = [
         [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), int],
         [[1.2, 6.4, 0.2], [0, -1, 70], [6.5, None], 'k'],
         [[0.2, 7.9, 0.5], [0, -1, 69], ['abc', None], 5],
     ]
     self.non_points = [
         [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), float],
         [[1.2, 6.4, 2.2], [0, -1, 70], [6.5, None], 'k'],
         [[0.2, 7.9, 0.5], [0, -1, 69], ['abc', None, float], 5],
         [[3.2, 7.9, 0.5], [-20, -1, 69], ['abc', None, float], 5],
         long,
         [[2.2, 3.6, 0.99], [5, 0, 68], ('abc', float), int, (3.2, 8.5)],
     ]
コード例 #7
0
 def __init__(self, p):
     """ Constructor. """
     super(Bernoulli, self).__init__()
     self.p = float(p)
     self.dim = 1
     self.domain = domains.IntegralDomain(np.array([0, 1]))