Example #1
0
def load_and_fit(refit, plot_egs, cv_scores):
    train_inst = Load_Data('train', repickle=False)
    data_X, data_y = train_inst.data_X, train_inst.data_y

    train_X, cv_X, train_y, cv_y = train_test_split(data_X,
                                                    data_y,
                                                    test_size=0.33,
                                                    random_state=42)
    train_X = train_X / 255
    cv_X = cv_X / 255

    del data_X, data_y
    mod_fpath = os.path.join(MODEL_DIR, '.mdl_wts.hdf5')
    model = modelling(train_X[0].shape)
    if refit or not os.path.exists(mod_fpath):
        earlyStopping = EarlyStopping(monitor='val_loss',
                                      patience=6,
                                      verbose=0,
                                      mode='min')
        mcp_save = ModelCheckpoint(mod_fpath,
                                   save_best_only=True,
                                   monitor='val_loss',
                                   mode='min')
        reduce_lr_loss = ReduceLROnPlateau(monitor='val_loss',
                                           factor=0.2,
                                           patience=2,
                                           verbose=1,
                                           epsilon=1e-4,
                                           mode='min')
        model.fit(train_X[:, :, :, :],
                  train_y[:, :],
                  epochs=100,
                  verbose=1,
                  batch_size=32,
                  callbacks=[earlyStopping, mcp_save, reduce_lr_loss],
                  validation_data=(cv_X, cv_y))
    model.load_weights(filepath=mod_fpath)

    if plot_egs:
        for i in range(10):
            show_example_prediction(model, cv_X, cv_y)

    if cv_scores:
        pred_log_loss, pred_accuracy = cv_score(model, cv_X, cv_y)
        print(
            f"CV log loss: {pred_log_loss:.3f}\nCV accuracy: {pred_accuracy:.3f}"
        )
    test_inst = Load_Data('test', repickle=False)
    test_data = test_inst.data
    test_data = test_data / 255
    preds = model.predict(test_data)
    prepare_submission(preds)
Example #2
0
def main(directory):

    dir_list = os.listdir(directory)
    for e in dir_list:
        file_name = directory + os.path.basename(e)

        metalearning = ml.main(os.path.basename(e))

        load = Load_Data(file_name)

        train, valid, test = load.split_train_test_valid()

        for i in range(1):

            try:
                output_file1 = sys.argv[1]
                output_file2 = sys.argv[1]
                if not output_file1.endswith('.pkl'):
                    output_file1 += '.pkl'
                    output_file2 += '.pkl'
            except IndexError:
                output_file1 = 'results_ab_' + os.path.basename(e) + '_' + str(
                    i) + '.pkl'
                output_file2 = 'results_ab_test_' + os.path.basename(
                    e) + '_' + str(i) + '.pkl'

                print("Will save results to", output_file1, output_file2)

            # data = load(file_name)

            hb = Hyperband(get_params, try_params, train, valid, test,
                           metalearning)
            results = hb.run(skip_last=1)
            # print(results)
            test_results = hb.tests(results)

            print("{} total, best in validation:\n".format(len(results)))

            for r in sorted(results, key=lambda x: x['loss']):
                print("loss: {:.2} | {} seconds | {:.1f} instances | run {} ".
                      format(r['loss'], r['seconds'], r['instances'],
                             r['counter']))
                pprint(r['params'])
                print

            print("test results")
            for r in range(len(test_results)):
                t = test_results[r]
                print(
                    "loss: {:.2%} | auc: {:.2%} | {} seconds | {} run ".format(
                        t['loss'], t['auc'], t['seconds'], t['counter']))
                pprint(t['params'])
                print

            print("results: ", results)
            print("test results:    ", test_results)
            print("saving...")

            with open(output_file1, 'wb') as f:
                pickle.dump(results, f)

            with open(output_file2, 'wb') as f:
                pickle.dump(test_results, f)

    return 'finished'
Example #3
0
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

from load_data import Load_Data
from suplinrel import SupLinRel
from utils import dose_to_category, mean_confidence_interval

delta = 0.75
num_run = 20

X, y = Load_Data().extract()
y = dose_to_category(y)

K = 3
reward = np.array([[0, -1, -1], \
                    [-1, 0, -1], \
                    [-1, -1, 0]])

regrets = np.zeros(num_run)
accuracy_scores = np.zeros(num_run)

for i in range(num_run):
    print("Processing Trial # %d out of %d." % (i+1, num_run))
    SLR = SupLinRel(K, reward, delta=delta)
    SLR.data_load(X, y)
    SLR.run()
    regrets[i] = SLR.total_regret()
    accuracy_scores[i] = SLR.accuracy_score()

regrets_mean, regrets_width = mean_confidence_interval(regrets)
Example #4
0
import numpy as np
import pandas as pd

import baseline
from load_data import Load_Data
from utils import dose_to_category

X, y = Load_Data().extract(genotype=True)

model1 = baseline.Fixed_Dose()
model1.fit(X, y)
ypred = model1.predict(X)

print("The accuracy score of fixed dose is: %f." %
      np.round(np.mean(dose_to_category(ypred) == dose_to_category(y)), 6))

model2 = baseline.Clinical_Dosing_Alg()
model2.fit(X, y)
ypred = model2.predict(X)

print("The accuracy score of clinical dosing algorithm is: %f." %
      np.round(np.mean(dose_to_category(ypred) == dose_to_category(y)), 6))

model3 = baseline.Pharma_Dosing_Alg()
model3.fit(X, y)
ypred = model3.predict(X)

print("The accuracy score of Pharmacogenetic dosing algorithm is: %f." %
      np.round(np.mean(dose_to_category(ypred) == dose_to_category(y)), 6))
variance_dict = {}

#creates a datelist which increments in 12 or 24 hour chunks
dates = mt.make_datetimelist(start_date, end_date, incr)
for date in dates:
    hour = date.strftime('%H')

    #create dict for variable type
    for ob_type in ob_types:
        ob_dict[ob_type] = ob_dict.get(ob_type, {})
        data_dict[ob_type] = data_dict.get(ob_type, {})
        SE_dict[ob_type] = SE_dict.get(ob_type, {})
        variance_dict[ob_type] = variance_dict.get(ob_type, {})

        #Load in the ensemble data for a given initilization
        efa = Load_Data(date, ensemble_type, variables, ob_type, [ob_type])
        statecls, lats, lons, elevs = efa.load_netcdfs(post,
                                                       lr=loc_rad,
                                                       inf=inflation)

        #Want to interpolate ALL observations valid during a given ensemble forecast.
        #Or not, to minimize runtime of script. 1 ens, var, and forecast hour takes
        #about 1 minute to run.
        hour_step = 6
        j = start_index
        fh = hour_step * j
        sfh = str(fh)
        while fh <= end_hour:
            #print(fh)
            obs = efa.load_obs(fh)
from load_data import Load_Data
from data_process import Data_Processing
from model import Model
from evaluation import Evaluation

if __name__ == '__main__':
    # load data
    load_data_module = Load_Data()
    credit_dataframe, target_dataframe, categories_feature = load_data_module.forward()
    # data processing
    data_processing_module = Data_Processing(credit_dataframe, target_dataframe, categories_feature)
    train_credit_dataframe, train_target_dataframe, test_credit_dataframe, test_target_dataframe = \
        data_processing_module.forward(used_model = 'xgboost')
    # modeling
    model_module = Model(train_credit_dataframe, train_target_dataframe, categories_feature, used_model = 'xgboost')
    model = model_module.forward()
    # evaluating
    evaluation_module  = Evaluation(model, test_credit_dataframe, test_target_dataframe, categories_feature, used_model = 'xgboost')
    evaluation_module.forward()