示例#1
0
文件: scores.py 项目: boliqq07/BGP
def calculate_collect_(ind,
                       context,
                       x,
                       y,
                       terminals_and_constants_repr,
                       gro_ter_con,
                       dim_ter_con_list,
                       dim_type,
                       fuzzy,
                       cv=1,
                       refit=True,
                       scoring=None,
                       score_pen=(1, ),
                       add_coef=True,
                       filter_warning=True,
                       inter_add=True,
                       inner_add=False,
                       vector_add=False,
                       out_add=False,
                       flat_add=False,
                       np_maps=None,
                       classification=False,
                       dim_maps=None,
                       cal_dim=True,
                       score_object="y",
                       details=False):
    expr01 = compile_context(ind, context, gro_ter_con)

    if cal_dim:
        dim, dim_score = calcualte_dim_score(expr01,
                                             terminals_and_constants_repr,
                                             dim_ter_con_list,
                                             dim_type,
                                             fuzzy,
                                             dim_maps=dim_maps)
    else:
        dim, dim_score = dless, 1

    score, expr01, pre_y = calculate_cv_score(expr01,
                                              x,
                                              y,
                                              terminals_and_constants_repr,
                                              cv=cv,
                                              refit=refit,
                                              add_coef=add_coef,
                                              inter_add=inter_add,
                                              inner_add=inner_add,
                                              vector_add=vector_add,
                                              out_add=out_add,
                                              flat_add=flat_add,
                                              scoring=scoring,
                                              score_pen=score_pen,
                                              filter_warning=filter_warning,
                                              np_maps=np_maps,
                                              classification=classification,
                                              score_object=score_object,
                                              details=details)

    return score, dim, dim_score, expr01, pre_y
示例#2
0
    for si in s:
        if isinstance(si, sympy.Symbol):
            ss.append(si)
        else:
            ss.extend(si)

    target = (ss[0] + ss[1]) * (ss[2] - ss[3])
    target = sympy.simplify(target)
    # a = time.time()
    random.seed(4)
    population = [
        SymbolTree.genFull(pset, int(height - 1),
                           int(height - 1) + 1) for _ in range(5000)
    ]
    for n, i in enumerate(population):
        i = compile_context(i, pset.context, pset.gro_ter_con, simplify=True)
        expr = general_expr_dict(i,
                                 pset.expr_init_map,
                                 pset.free_symbol,
                                 pset.gsym_map,
                                 simplifying=True)
        # print(expr)
        if expr == target:
            print(n)
            break

    ####GP
    pset = SymbolSet()
    pset.add_features(x, y)
    pset.add_operations(categories=("Add", "Mul", "Sub", "Div"))
示例#3
0
    x_u = [kg] * 13
    y_u = kg
    c_u = [dless, dless, dless]

    x, x_dim = Dim.convert_x(x, x_u, target_units=None, unit_system="SI")
    y, y_dim = Dim.convert_xi(y, y_u)
    c, c_dim = Dim.convert_x(c, c_u)

    t = time.time()

    # symbolset
    pset0 = SymbolSet()
    pset0.add_features(x,
                       y,
                       x_dim=x_dim,
                       y_dim=y_dim,
                       x_group=[[1, 2], [3, 4, 5]])
    pset0.add_constants(c, c_dim=c_dim, c_prob=None)
    pset0.add_operations(power_categories=(2, 3, 0.5),
                         categories=("Add", "Mul", "Sub", "Div", "exp"),
                         self_categories=None)

    random.seed(0)
    z = time.time()
    sl = [SymbolTree.genGrow(pset0, 3, 4) for _ in range(100)]
    a = time.time()
    sl = [compile_context(sli, pset0.context, pset0.gro_ter_con) for sli in sl]
    b = time.time()

    print(b - a, a - z)
示例#4
0
文件: test_score.py 项目: MGEdata/BGP
                                  dim_type=None,
                                  fuzzy=False,
                                  add_coef=False,
                                  inter_add=True,
                                  inner_add=False,
                                  n_jobs=1,
                                  batch_size=20,
                                  tq=True)
    from sys import getsizeof

    T100 = getsizeof(sl)
    psize = getsizeof(pset0)
    # print(T100,psize)
    for i in sl:
        b = time.time()
        i0 = compile_context(i, pset0.context, pset0.gro_ter_con)
        r2 = time.time()
        # pprint(i0,pset0)
        calculate_y(i0,
                    pset0.data_x,
                    pset0.y,
                    pset0.terminals_and_constants_repr,
                    add_coef=True,
                    filter_warning=True,
                    inter_add=True,
                    inner_add=True,
                    np_maps=np_map())
        # i = pset0.calculate_detail(i)
        # j = simple(i.coef_expr, pset0.gro_ter_con)
        # print(i)
        # print(repr(i))
示例#5
0
    pset0 = CalculatePrecisionSet(pset0,
                                  scoring=None,
                                  score_pen=(1, ),
                                  filter_warning=True,
                                  cal_dim=False,
                                  dim_type=None,
                                  fuzzy=False,
                                  add_coef=False,
                                  inter_add=True,
                                  inner_add=False,
                                  n_jobs=1,
                                  batch_size=20,
                                  tq=True)
    sl = [SymbolTree.genGrow(pset0, 3, 4) for _ in range(50)]
    sll = [
        compile_context(o, pset0.context, pset0.gro_ter_con, simplify=True)
        for o in sl
    ]

    slll = [
        try_add_coef(i,
                     pset0.data_x,
                     pset0.y,
                     pset0.terminals_and_constants_repr,
                     filter_warning=True,
                     inter_add=True,
                     inner_add=False,
                     vector_add=True,
                     np_maps=np_map())[1] for i in sll
    ]
    sllll = [general_expr(o, pset0, simplifying=False) for o in slll]