def test_utils_graphviz_terminals():
    import os
    from EvoDAG.command_line import params, train, utils
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2',
        fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model',
        'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--output', 'output.evodag', '--decision-function', '-u2',
        '--model', 'model.evodag', fname
    ]
    sys.argv = [
        'EvoDAG', '-G', '-oevodag_gv', '--remove-terminals', 'model.evodag'
    ]

    utils()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    for i in range(2):
        os.unlink('evodag_gv/evodag-%s' % i)
    os.rmdir('evodag_gv')
    default_nargs()
def test_create_ensemble():
    import os
    from EvoDAG.command_line import params, train, utils
    from EvoDAG.model import Ensemble
    import pickle
    import gzip
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag',
        '-p3', '-e2', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n1', '--output-dim=3',
        '--seed=1', '--model', 'model.evodag.1', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n1', '--output-dim=3',
        '--seed=2', '--model', 'model.evodag.2', '--test', fname, fname
    ]
    train()
    os.unlink('cache.evodag')
    sys.argv = [
        'EvoDAG', '--create-ensemble', '-omodel.evodag', '-n3',
        'model.evodag.* model.evodag.1'
    ]
    utils()
    os.unlink('model.evodag.1')
    os.unlink('model.evodag.2')
    with gzip.open('model.evodag', 'r') as fpt:
        ens = pickle.load(fpt)
    assert isinstance(ens, Ensemble)
    os.unlink('model.evodag')
    default_nargs()
def test_number_multiple_outputs_regression():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag',
        '-p3', '-e1', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3',
        '--model', 'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--output', 'output.evodag', '--decision-function',
        '--model', 'model.evodag', fname
    ]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    l = open('output.evodag').readline()
    os.unlink('output.evodag')
    default_nargs()
    assert len(l.split(',')) == 3
def test_raw_outputs_classification():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-C', '--parameters', 'cache.evodag',
        '-p3', '-e1', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3',
        '--model', 'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--output', 'output.evodag', '--raw-outputs', '--model',
        'model.evodag', fname
    ]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    l = open('output.evodag').readline()
    os.unlink('output.evodag')
    default_nargs()
    assert len(l.split(',')) == 6
Exemple #5
0
def test_utils_graphviz():
    import os
    from EvoDAG.command_line import params, train, utils
    fname = training_set()
    sys.argv = ['EvoDAG', '-C', '--parameters',
                'cache.evodag', '-p3', '-e1',
                '-r2', fname]
    params()
    sys.argv = ['EvoDAG', '--parameters', 'cache.evodag',
                '-n2',
                '--model', 'model.evodag',
                '--test', fname, fname]
    train()
    sys.argv = ['EvoDAG', '--output', 'output.evodag',
                '--decision-function',
                '-u2',
                '--model', 'model.evodag', fname]
    sys.argv = ['EvoDAG', '-G', '-oevodag_gv',
                'model.evodag']

    utils()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    for i in range(2):
        for j in range(3):
            os.unlink('evodag_gv/evodag-%s-%s.gv' % (i, j))
    os.rmdir('evodag_gv')
    default_nargs()
def test_get_best_params_files():
    import numpy as np
    import gzip
    import pickle
    import os
    from EvoDAG.command_line import params, train, utils
    import shutil
    from glob import glob
    if os.path.isdir('cache'):
        shutil.rmtree('cache')
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '-Pcache', '--only-paramsfiles', '-r', '2', fname
    ]
    params()
    for p in glob(os.path.join('cache', '*_params.json')):
        basename = p.split('_params.json')[0]
        for s in range(3):
            model = basename + '_%s.model' % s
            sys.argv = [
                'EvoDAG',
                '-s%s' % s,
                '-P%s' % p,
                '-m%s' % model, '-n1', fname
            ]
            train()
    R = []
    for p in range(2):
        l = []
        for s in range(3):
            with gzip.open(os.path.join('cache',
                                        '%s_%s.model' % (p, s))) as fpt:
                m = pickle.load(fpt)
                l.append(m.fitness_vs * -1)
        R.append((p, l))
    print(R)
    m = np.array([np.median(x[1]) for x in R])
    m = m - np.min(m)
    param = ['%s_params.json' % k for k, x in enumerate(m) if x == 0]
    sys.argv = ['EvoDAG', '--best-params-file', 'cache']
    c = utils(output=True)
    print(c.best_params, param)
    assert c.best_params in param
    sys.argv = ['EvoDAG', '-u2', '--best-params-file', 'cache']
    c = utils(output=True)
    print(c.best_params, param, '*')
    assert c.best_params in param
    if os.path.isdir('cache'):
        shutil.rmtree('cache')
        default_nargs()
Exemple #7
0
def test_get_best_params_files():
    import numpy as np
    import gzip
    import pickle
    import os
    from EvoDAG.command_line import params, train, utils
    import shutil
    from glob import glob
    if os.path.isdir('cache'):
        shutil.rmtree('cache')
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '-Pcache', '--only-paramsfiles', '-r', '2', fname
    ]
    params()
    for p in glob('cache/*_params.json'):
        basename = p.split('_params.json')[0]
        for s in range(3):
            model = basename + '_%s.model' % s
            sys.argv = [
                'EvoDAG',
                '-s%s' % s,
                '-P%s' % p,
                '-m%s' % model, '-n1', fname
            ]
            train()
    R = []
    for p in range(2):
        l = []
        for s in range(3):
            with gzip.open('cache/%s_%s.model' % (p, s)) as fpt:
                m = pickle.load(fpt)
                l.append(m.fitness_vs * -1)
        R.append((p, l))
    m = min(R, key=lambda x: np.median(x[1]))
    param = '%s_params.json' % m[0]
    sys.argv = ['EvoDAG', '--best-params-file', 'cache']
    c = utils(output=True)
    assert c.best_params == param
    sys.argv = ['EvoDAG', '-u2', '--best-params-file', 'cache']
    c = utils(output=True)
    assert c.best_params == param
    if os.path.isdir('cache'):
        shutil.rmtree('cache')
        default_nargs()
def test_model_used_inputs_number():
    import os
    from EvoDAG.command_line import params, train, utils
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag',
        '-p3', '-e1', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3',
        '--model', 'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = ['EvoDAG', '--used-inputs-number', 'model.evodag']
    utils()
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    default_nargs()
Exemple #9
0
def test_predict():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = training_set()
    sys.argv = ['EvoDAG', '-C', '--parameters',
                'cache.evodag.gz', '-p3', '-e2', '-r', '2', fname]
    params()
    sys.argv = ['EvoDAG', '--parameters', 'cache.evodag.gz',
                '-n2',
                '--model', 'model.evodag',
                '--test', fname, fname]
    train()
    sys.argv = ['EvoDAG', '--output', 'output.evodag',
                '--model', 'model.evodag', fname]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag.gz')
    os.unlink('model.evodag')
    assert os.path.isfile('output.evodag')
    os.unlink('output.evodag')
    default_nargs()
Exemple #10
0
def test_decision_function():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = training_set()
    sys.argv = ['EvoDAG', '-C', '--parameters',
                'cache.evodag', '-p3', '-e1',
                '-r', '1', fname]
    params()
    sys.argv = ['EvoDAG', '--parameters', 'cache.evodag',
                '-n2',
                '--model', 'model.evodag',
                '--test', fname, fname]
    train()
    sys.argv = ['EvoDAG', '--output', 'output.evodag',
                '--decision-function',
                '--model', 'model.evodag', fname]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    os.unlink('output.evodag')
    default_nargs()
def test_time_limit():
    import os
    from EvoDAG.command_line import params, train
    import json
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e2',
        '--time-limit', '10', '-r', '2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model',
        'model.evodag', '--test', fname, fname
    ]
    train()
    os.unlink(fname)
    with open('cache.evodag') as fpt:
        a = json.loads(fpt.read())[0]
    assert 'time_limit' in a
    os.unlink('cache.evodag')
    assert os.path.isfile('model.evodag')
    os.unlink('model.evodag')
    default_nargs()
Exemple #12
0
def test_time_limit():
    import os
    from EvoDAG.command_line import params, train
    import json
    fname = training_set()
    sys.argv = ['EvoDAG', '-C', '--parameters',
                'cache.evodag', '-p3', '-e2',
                '--time-limit', '10',
                '-r', '2', fname]
    params()
    sys.argv = ['EvoDAG', '--parameters', 'cache.evodag',
                '-n2',
                '--model', 'model.evodag',
                '--test', fname, fname]
    train()
    os.unlink(fname)
    with open('cache.evodag') as fpt:
        a = json.loads(fpt.read())[0]
    assert 'time_limit' in a
    os.unlink('cache.evodag')
    assert os.path.isfile('model.evodag')
    os.unlink('model.evodag')
    default_nargs()
def test_predict_cpu():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2',
        fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model',
        'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--output', 'output.evodag', '--decision-function', '-u2',
        '--model', 'model.evodag', fname
    ]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag')
    os.unlink('model.evodag')
    os.unlink('output.evodag')
    default_nargs()
def test_predict():
    import os
    from EvoDAG.command_line import params, train, predict
    fname = training_set()
    sys.argv = [
        'EvoDAG', '-C', '--parameters', 'cache.evodag.gz', '-p3', '-e2', '-r',
        '2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag.gz', '-n2', '--model',
        'model.evodag', '--test', fname, fname
    ]
    train()
    sys.argv = [
        'EvoDAG', '--output', 'output.evodag', '--model', 'model.evodag', fname
    ]
    predict()
    os.unlink(fname)
    os.unlink('cache.evodag.gz')
    os.unlink('model.evodag')
    assert os.path.isfile('output.evodag')
    os.unlink('output.evodag')
    default_nargs()
Exemple #15
0
def test_model_min_size():
    import os
    from EvoDAG.command_line import params, train
    import gzip
    import pickle
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag',
        '-p3', '-e2', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3',
        '--min-size=6', '--model', 'model.evodag', '--test', fname, fname
    ]
    train()
    os.unlink('cache.evodag')
    with gzip.open('model.evodag') as fpt:
        m = pickle.load(fpt)
        for x in m.models:
            print(x.size)
            assert x.size >= 6
    os.unlink('model.evodag')
    default_nargs()
def test_model_seed():
    import os
    from EvoDAG.command_line import params, train
    fname = mo_training_set()
    sys.argv = [
        'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag',
        '-p3', '-e2', '-r2', fname
    ]
    params()
    sys.argv = [
        'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3',
        '--seed=1', '--model', 'model.evodag', '--test', fname, fname
    ]
    c = train(output=True)
    os.unlink('cache.evodag')
    default_nargs()
    assert c.data.seed == 1