def test_save_model():
    dset = get_test_dataset()
    args = {'featureflag': 'FCHL',
                'targetflag': 'HCS'}
    params = {'cutoff': 5.0}

    dset.get_features_frommols(args, params)
    model = FCHLmodel()
    model.get_x(dset, args['targetflag'], assign_train=True)
    model.train()

    filename='tests/test_tmp/tmp_model.pkl'
    model.save_model(filename=filename)

    assert os.path.isfile(filename)

    ld_model = FCHLmodel()
    ld_model.load_model(filename)

    train_x, train_y = model.get_x(dset, args['targetflag'], assign_train=False)
    test_x = np.asarray(train_x[:, :4])
    y_pred1 = ld_model.predict(test_x)
    y_pred2 = model.predict(test_x)

    assert np.array_equal(y_pred1, y_pred2)

    os.remove(filename)
def test_trainFCHLmodel():

    dset = get_test_dataset()

    for target in ['HCS', '1JCH']:
        args = {'featureflag': 'FCHL',
                'targetflag': target}
        params = {'cutoff': 5.0}

        dset.get_features_frommols(args, params)
        model = FCHLmodel()
        model.get_x(dset, args['targetflag'], assign_train=True)

        model.train()

        assert model.trained == True
def test_iteration():

    dataset = get_test_dataset()
    args = {
        'featureflag': 'CMAT',
        'targetflag': 'HCS',
        'feature_optimisation': 'True',
        'logfile': 'tests/test_tmp/tmp_logfile',
        'searchflag': 'test_search',
        'modelflag': 'KRR',
        'param_list': ['cutoff', 'sigma', 'lamda'],
        'param_logs': {
            'cutoff': 'lin',
            'sigma': 'log',
            'lamda': 'log'
        },
        'param_ranges': {
            'cutoff': [0, 10],
            'sigma': [-5, -2],
            'lamda': [-10, -4]
        },
        'output_dir': './'
    }

    params = {'cutoff': 5.0, 'sigma': 0.1, 'lamda': 0.01}

    model = KRRmodel()

    BEST_SCORE = 99999.9999
    BEST_PARAMS = {}

    HPS_generic.setup_logfile(args)
    for iter in range(2):
        next_point_to_probe = params
        score, BEST_SCORE, BEST_PARAMS = HPS_generic.HPS_iteration(
            model,
            iter,
            dataset,
            args,
            next_point_to_probe=next_point_to_probe,
            BEST_SCORE=BEST_SCORE,
            BEST_PARAMS=BEST_PARAMS)

    print(score, BEST_SCORE, BEST_PARAMS)

    os.remove(args['logfile'])
示例#4
0
def test_random_hyperopt():

    dataset = get_test_dataset()
    args = {'featureflag': 'CMAT',
            'targetflag': 'HCS',
            'feature_optimisation': 'True',
            'logfile': 'tests/test_tmp/tmp_logfile',
            'searchflag': 'test_search',
            'modelflag': 'KRR',
            'param_list': ['cutoff', 'sigma', 'lamda'],
            'param_logs': {'cutoff': 'lin', 'sigma': 'log', 'lamda': 'log'},
            'param_ranges': {'cutoff': [0, 10], 'sigma': [-5, -2], 'lamda': [-10, -4]},
            'output_dir': './'}

    args['epochs'] = 3

    model = KRRmodel()
    dataset, BEST_SCORE = HPS_random.random_search(model, dataset, args)
def test_cvpredict_FCHLmodel_shift():

    dset = get_test_dataset(size=6)

    for target in ['HCS', '1JCH']:
        args = {'featureflag': 'FCHL',
                'targetflag': target}
        params = {'cutoff': 5.0}

        dset.get_features_frommols(args, params)
        model = KRRmodel()
        model.get_x(dset, args['targetflag'], assign_train=True)

        model.train()

        assert model.trained == True

        y_pred = model.cv_predict(fold=3)

        assert y_pred.shape == model.train_y.shape
def test_predictFCHLmodel():

    dset = get_test_dataset()

    for target in ['HCS', '1JCH']:
        args = {'featureflag': 'FCHL',
                'targetflag': target}
        params = {'cutoff': 5.0}

        dset.get_features_frommols(args, params)
        model = FCHLmodel()

        target = flag_to_target(args['targetflag'])

        model.get_x(dset, args['targetflag'], assign_train=True)
        model.train()

        assert model.trained == True
        train_x, train_y = model.get_x(dset, args['targetflag'], assign_train=False)
        test_x = np.asarray(train_x[:, :4])
        y_pred = model.predict(test_x)

        assert np.allclose(y_pred, train_y[:4], atol=0.1, rtol=0.0)
        assert sum(y_pred) != 0.0