示例#1
0
def addgraphs(graphs):
    #grammar = loco.LOCO(
    grammar = lsgg.lsgg(decomposition_args={
        "radius_list": [0, 1, 2],
        "thickness_list": [1],
        "loco_minsimilarity": .8,
        "thickness_loco": 4
    },
                        filter_args={
                            "min_cip_count": 2,
                            "min_interface_count": 2
                        })
    grammar.fit(graphs, n_jobs=args.n_jobs)
    scorer = score.OneClassEstimator(n_jobs=args.n_jobs).fit(graphs)
    scorer.n_jobs = 1  # demons cant spawn children
    selector = choice.SelectMaxN(10)
    transformer = transformutil.no_transform()
    mysample = partial(sample.multi_sample,
                       transformer=transformer,
                       grammar=grammar,
                       scorer=scorer,
                       selector=selector,
                       n_steps=5,
                       n_neighbors=100)
    if False:
        res = sgexec.sgexec(mysample, graphs)
    else:
        res = ba.mpmap_prog(mysample,
                            graphs,
                            poolsize=args.n_jobs,
                            chunksize=1)
    return graphs + res
示例#2
0
def addgraphs(graphs):
    #grammar = loco.LOCO(
    grammar = lsgg.lsgg(decomposition_args={
        "radius_list": [0, 1, 2],
        "thickness_list": [1, 2],
        "loco_minsimilarity": .8,
        "thickness_loco": 4
    },
                        filter_args={
                            "min_cip_count": 1,
                            "min_interface_count": 1
                        })
    grammar.fit(graphs, n_jobs=args.n_jobs)
    #scorer = score.OneClassEstimator(n_jobs=args.n_jobs).fit(graphs)
    scorer = score.OneClassAndSizeFactor(
        n_jobs=args.n_jobs,
        model=svm.OneClassSVM(kernel='linear', gamma='auto')).fit(graphs)
    scorer.n_jobs = 1  # demons cant spawn children
    #selector = choice.SelectProbN(1)
    selector = choice.SelectClassic(
        reg=0)  # linear kernel -> .8 , rbf kernel -> .97?
    transformer = transformutil.no_transform()
    # multi sample: mysample = partial(sample.multi_sample, transformer=transformer, grammar=grammar, scorer=scorer, selector=selector, n_steps=20, n_neighbors=200)
    # mysample = partial(sample.sample, transformer=transformer, grammar=grammar, scorer=scorer, selector=selector, n_steps=20)
    mysample = partial(sample.sample_sizeconstraint,
                       penalty=args.size_score_penalty,
                       transformer=transformer,
                       grammar=grammar,
                       scorer=scorer,
                       selector=selector,
                       n_steps=args.n_steps)

    #print (mysample(graphs[0]))
    #exit()
    return mysample, graphs
def makelsgg():
    return lsgg.lsgg(decomposition_args={
        "radius_list": [0],
        "thickness_list": [1]
    },
                     filter_args={
                         "min_cip_count": 1,
                         "min_interface_count": 1
                     })
示例#4
0
 def __init__(self,
              radius_list=[0, 1, 2, 3],
              thickness_list=[1],
              min_cip_count=4,
              min_interface_count=2,
              max_n_neighbors=None,
              n_neigh_steps=1,
              max_neighborhood_size=None):
     """init."""
     self.max_n_neighbors = max_n_neighbors
     self.n_neigh_steps = n_neigh_steps
     self.max_neighborhood_size = max_neighborhood_size
     self.grammar = lsgg(
         decomposition_args=dict(radius_list=radius_list,
                                 thickness_list=thickness_list,
                                 hash_bitmask=2**16 - 1),
         filter_args=dict(min_cip_count=min_cip_count,
                          min_interface_count=min_interface_count))
示例#5
0
def test_dark_edges():
    ''''''
    lsggg = lsgg.lsgg()
    g = _edenize_for_testing(nx.path_graph(3))

    g_dark = g.copy()
    for n,d in g_dark.nodes(data=True):
        if 'edge' in d:
            d['nesting'] = True


    # test fit
    lsggg.fit([g, g_dark])
    assert 2 == len([g.graph  for v in lsggg.productions.values() for g in v.values()])

    # test production
    res = lsggg.neighbors(g_dark)

    #import structout as so
    #so.gprint([g.graph  for v in lsggg.productions.values() for g in v.values()] )
    assert 2 == len(list(res))
示例#6
0
 def __init__(self,
              r=3,
              d=3,
              min_count=1,
              max_n_neighbors=None,
              n_iter=20,
              k_best=5):
     """init."""
     self.max_n_neighbors = max_n_neighbors
     self.n_iter = n_iter
     self.k_best = k_best
     decomposition_args = {
         "radius_list": [0, 1, 2, 3],
         "thickness_list": [2]
     }
     filter_args = {
         "min_cip_count": min_count,
         "min_interface_count": min_count
     }
     self.grammar = lsgg(decomposition_args, filter_args)
     self.multiobj_est = DistRankSizeCostEstimator(r=r, d=d)
示例#7
0
 def __init__(self,
              r=3,
              d=3,
              min_count=1,
              max_n_neighbors=None,
              n_iter=20,
              k_best=5,
              improve=True):
     """init."""
     self.r = r
     self.d = d
     self.max_n_neighbors = max_n_neighbors
     self.n_iter = n_iter
     self.k_best = k_best
     self.improve = improve
     decomposition_args = {
         "radius_list": [0, 1, 2, 3],
         "thickness_list": [2]
     }
     filter_args = {
         "min_cip_count": min_count,
         "min_interface_count": min_count
     }
     self.grammar = lsgg(decomposition_args, filter_args)
示例#8
0
def test_get_grammar():
    lsggg = lsgg.lsgg()
    g = _edenize_for_testing(nx.path_graph(4))
    lsggg.fit([g, g, g])
    return lsggg