def __init__(self, lat, lon): if not os.path.exists(MLP_FILE % (lat, lon)): raise OSError if not os.path.exists(LASSO_FILE % (lat, lon)): raise OSError self.mlp_dropout_model = serial.load(MLP_DROPOUT_FILE % (lat, lon)) self.mlp_model = serial.load(MLP_FILE % (lat, lon)) self.lasso_model = pickle.load(open(LASSO_FILE % (lat, lon), 'r')) self.test_data = load_data.load_supervised(1986, 1999, lat, lon, 50, which='test') self.lat = lat self.lon = lon
import os import sys import numpy import load_data import argparse import pickle from scipy.stats.stats import pearsonr, spearmanr from sklearn.linear_model import Lasso, ElasticNet, LassoCV, LassoLarsCV parser = argparse.ArgumentParser() parser.add_argument("--lat", help="Training Latitude", type=float) parser.add_argument("--lon", help="Training Longitude", type=float) args = parser.parse_args() train_data = load_data.load_supervised(1950, 1985, args.lat, args.lon, 50, which='train') test_data = load_data.load_supervised(1986, 1999, args.lat, args.lon, 50, which='test') lasso_file = os.path.join(os.path.dirname(__file__), "models/lasso_%2.2f_%2.2f.pkl" % (args.lat, args.lon)) if os.path.exists(lasso_file): print "Reading PCA from file" L = pickle.load(open(lasso_file, 'r')) else: print "Fitting Lasso" L = LassoLarsCV(cv=5) L.fit(train_data.X, train_data.y[:,0]) pickle.dump(L, open(lasso_file, 'w')) ## Print Fit stats print "Alpha", L.alpha_