# Training - Part 2, adjusting regularization parameter to investigate effect on the model. lambdas = sorted([10**x for x in range(-3, 3)]) rate = 1e-05 for lam in lambdas: model = LinearModel(train='data/PA1_train.pkl', validation='data/PA1_dev.pkl', test='data/PA1_test.pkl', target='price', rate=rate, lam=lam, eps=2.5, normalize=True) learned_model = model.train_model(max_iter=10000) if learned_model['exploding'] is False and learned_model[ 'convergence'] is True: print('Training complete.') # Save output for learned model to .json file. filename = 'rate_' + str('{:.0E}'.format(rate)) + '_lam_' + str( '{:.0E}'.format(lam)) my_path = Path('..', 'model_output', 'part_2', filename + '_train.json') train_path = Path(__file__).parent.resolve().joinpath(my_path) # Make output directory if doesn't exist. output_dir = train_path.parent.resolve() if not Path(output_dir).exists(): Path(output_dir).mkdir()
from models.linear_model import LinearModel pp = pprint.PrettyPrinter() model = LinearModel(train='data/PA1_train.pkl', validation='data/PA1_dev.pkl', test='data/PA1_test.pkl', target='price', rate=1e-05, lam=0.001, eps=0.5, normalize=True) names = model.weight_labels learned_model = model.train_model(50000) val_predictions = model.predict_validation( learned_model['weights'])['predictions'] test_predictions = model.predict_test( (learned_model['weights']))['predictions'] prediction_output = pathlib.Path('model_output/predictions.pkl') prediction_file = pathlib.Path('model_output/predictions.txt') pred_output_path = pathlib.Path(__file__).parent.resolve().joinpath( prediction_output) pred_file_path = pathlib.Path(__file__).parent.resolve().joinpath( prediction_file) # Save predictions with open(pred_output_path, 'wb') as fp: